2011-04-13 126 views
0

這個methos的聲明是: - (BOOL)moveItemAtPath:(的NSString *)srcPath toPath:(NSString的)dstPath錯誤:(NSError *)錯誤 及其文檔說源路徑可以是文件名或目錄名稱,假設我們在當前工作目錄中有一個名爲「test」的文件和一個名爲「test」的子目錄,在調用方法之後: [fm moveItemAtPath:@「test」toPath:@「newTest」error:null];如何區分目錄中的文件在moveItemAtPath:toPath:錯誤:方法

其中fm是NSFileManager類的一個對象,將要重命名哪些項目:文件還是目錄?這種方法如何區分文件和目錄?

p.s.據我所知,如果源路徑和目標路徑相同,則此方法執行重命名,在這種情況下,source path = target path =當前工作目錄。

+0

什麼是你的目標OS?在Mac OS X和iOS(HFS)中使用的文件系統不允許創建具有相同名稱的文件和目錄 – 2011-04-13 10:18:11

+0

目標操作系統是Windows 7 ...現在我想到了這個想法,並且@sidyll說,如果我提供參數「文件」的方法將它視爲目錄,如果提供「file.txt」它將它視爲文件。 – JaHelia 2011-04-13 11:12:51

回答

1

正如@stam所說,你不能創建一個同名的文件和文件夾(請記住,file.txtfile不同)。

但是,如果你想知道一個路徑是否代表一個目錄或文件,請使用以下方法:

- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory 

像:

BOOL isDir; 
if ([fm fileExistsAtPath:path isDirectory:&isDir]) { 
    // Item Exists 
    if (isDir) { 
     // Is a directory 
    } else { 
     // Is a file 
    } 
} else { 
    // Item doesn't exist 
} 
相關問題