我试图在我的文档目录中创建一个文件夹,我希望能够在不输入/ 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 /(用户名)
答案 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"];