2017-05-17 121 views
0

我是新來的目標c。我需要在默認路徑的文檔文件夾內創建嵌套文件夾。像Documents/folder1/folder2/folder3/user.xml,但這裏有一件事folder3名字動態給出,但我沒有得到如何動態傳遞文件夾名稱,而在默認管理器內創建文件夾。無論我將要創建什麼,都應該閱讀並檢查user.xml文件是否存在。如何在iphone中使用objective c創建嵌套目錄?

回答

0

我假設你使用NSFileManager。首先使用fileExistsAtPath:檢查文件是否存在,併爲其提供xml文件的完整路徑。

如果不存在,請使用createDirectoryAtURL:withIntermediateDirectories:attributes:error:創建您的文件夾3結構,將withIntermediateDirectories設置爲YES。

然後,您可以在文件夾3內創建您的user.xml文件。

+0

如何在文件夾中的3傳動單元連接動態傳遞的文件夾名稱? –

+0

如果你有一個包含'root'目錄的字符串(例如'rootDir')和一個包含動態部分的字符串(例如'endFolder'),你可以使用以下方法創建一個新路徑:'NSString * fullPath = [rootDir stringByAppendingPathComponent:endFolder ];'使用'NSSearchPathForDirectoriesInDomains'在iOS上獲取應用程序的文檔根路徑(沒有如何做到這一點的示例)。 – norders

+0

如何通過此路徑讀取文件?即使在讀取時我必須將動態文件夾名稱傳遞到路徑。 –

0

你可以這樣做,

NSError *err; 
NSArray *pathArr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [pathArr objectAtIndex:0]; 
NSString *yourDesiredPath = [documentsDirectory stringByAppendingPathComponent:@"folder1/folder2/folder3/user.xml "]; 

if (![[NSFileManager defaultManager] fileExistsAtPath:yourDesiredPath]){ 
    [[NSFileManager defaultManager] createDirectoryAtPath:yourDesiredPath withIntermediateDirectories:NO attributes:nil error:&err]; 
    NSLog(@"folder created at path : %@",yourDesiredPath); 
} 
+0

我使用了相同的創建文件夾,但無法將創建的文件夾與NSFileManager進行比較,並始終顯示nil。 –