iOS-在文档

时间:2015-08-13 00:15:49

标签: ios objective-c

我试图在我的文档目录中创建一个文件夹,我希望能够在不输入/ Users /(用户名)/ Documents / Foo / Bar

的情况下完成
NSString *directoryPath = [NSString stringWithFormat:@"%@/Documents/Foo/Bar", NSHomeDirectory()];    

BOOL isDir;
NSFileManager *fileManager= [NSFileManager defaultManager];
if(![fileManager fileExistsAtPath:directoryPath isDirectory:&isDir])
    if(![fileManager createDirectoryAtPath:directoryPath withIntermediateDirectories:YES attributes:nil error:NULL])
        NSLog(@"Error: Create folder failed %@", directoryPath);

当我尝试使用NSHomeDirectory()时,这不起作用。但是如果我输入完整路径/ Users /(用户名)/ Documents / Foo / Ba就行了。如何不必知道用户文件夹呢?

编辑: directoryPath成为

/Users/(username)/Library/Developer/CoreSimulator/Devices/FAB78255-38D2-49BE-9683-7A0676EA2288/data/Containers/Data/Application/67B0AACE-572A-4808-9535-D221AEEB9EFA/Foo/Bar

我只想要/ Users /(用户名)

1 个答案:

答案 0 :(得分:1)

这是一款iOS应用。 iOS应用程序沙箱的“Documents”文件夹与其计算机上用户的“Documents”文件夹完全无关。

由于您似乎在模拟器中运行iOS,因此您获得的路径更像您应该看到的路径。你想在用户的主目录中找到一个路径。

请注意,您无法使用NSHomeDirectory()访问iOS应用的“Documents”文件夹。这可能适用于旧版本的iOS,但在iOS 8及更高版本中失败。正确的代码必须是这样的:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsFolder = paths[0];
NSString *directoryPath = [documentsFolder stringByAppendingPathComponent:@"Foo/Bar"];