2011-06-16 47 views
1

如何知道文件名在目標c中是否有效?我在NSString「Working with Paths」任務中找不到任何東西,我認爲做手動正則表達式不是正確的方法。是否有效文件名

+0

當然任何字符串是一個有效的文件名 - HFS +使用Unicode – Mark 2011-06-16 12:11:08

+0

即使AAA/AAA?這將被視爲一個目錄 – Dani 2011-06-16 12:11:54

+0

這是一個有效的路徑 – Mark 2011-06-16 12:13:17

回答

2

實際上很難知道文件名是否有效。要做的最好的事情就是嘗試你想要做的操作並處理錯誤。例如,如果您想讀取文件,請將其打開以供閱讀。如果該文件無效,則打開將失敗。

編輯

如果要限制用戶在當前目錄中選擇路徑,你可以這樣做:

NSArray* pathComponents = [string pathComponents]; 

if ([pathComponents count] != 1) 
{ 
    // error 
} 
+0

我希望我的用戶輸入文件名。如果他們輸入像'../../../../ veryDangerusFile'這樣的東西,我不希望程序運行失敗。我希望它不允許目錄更改。 – Dani 2011-06-16 15:27:39

+0

@Dani:看到我編輯的答案 – JeremyP 2011-06-17 12:24:15

+0

爲什麼不只是如果([string rangeOfString:@「/」]。location!= NSNotFound){// error} ..?數組分裂只是爲了查看是否存在多餘。 – Kalle 2012-09-02 09:49:43