我在我的应用的Documents文件夹的viewDidLoad
中创建了一个目录。
NSString *localDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
self.projectsLocalPath = [localDirectory stringByAppendingPathComponent:@"Projects"];
if ([[NSFileManager defaultManager] fileExistsAtPath:self.projectsLocalPath] == NO) {
[[NSFileManager defaultManager] createDirectoryAtPath:self.projectsLocalPath withIntermediateDirectories:YES attributes:nil error:nil];
}
之后,我列出所有文件,使它们出现在日志中,检查它是否是目录:
//----- LIST ALL FILES -----
NSArray *contentOfFolder = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:localDirectory error:nil];
for (NSString *aPath in contentOfFolder) {
NSString *fullPath = [localDirectory stringByAppendingPathComponent:aPath];
BOOL isDir;
if ([[NSFileManager defaultManager] fileExistsAtPath:fullPath isDirectory:&isDir] && isDir) {
NSLog(@"%@ - IT IS A DIR", fullPath);
}
else {
NSLog(@"%@ - IT IS NOT A DIR", fullPath);
}
}
当我第一次运行应用程序时,日志文件列表如下所示:
/ var / mobile / Containers / Data / Application / E3 ... 94 / Documents / Project.sqlite - 它不是DIR
/ var / mobile / Containers / Data / Application / E3 ... 94 / Documents / Project.sqlite-shm - 这不是DIR
/ var / mobile / Containers / Data / Application / E3 ... 94 / Documents / Project.sqlite-wal - 这不是DIR
/ var / mobile / Containers / Data / Application / E3 ... 94 / Documents / Projects - IT is DIR
一切都是正确的。但是以下运行在日志中显示Projects
文件夹不再是目录。
/ var / mobile / Containers / Data / Application / E3 ... 94 / Documents / Project.sqlite - 它不是DIR
/ var / mobile / Containers / Data / Application / E3 ... 94 / Documents / Project.sqlite-shm - 这不是DIR
/ var / mobile / Containers / Data / Application / E3 ... 94 / Documents / Project.sqlite-wal - 这不是DIR
/ var / mobile / Containers / Data / Application / E3 ... 94 / Documents / Projects - IT不是DIR
就像它将魔法转换为文件一样......问题是,当我想查看目录的内容时,我收到一条错误消息,说它不是目录。
我做错了吗?这个问题让我疯狂......
提前感谢大家的帮助。
修改
首次运行时,创建目录后,我会使用dropbox API下载一些文件并将其保存到新创建的目录中:[self.restClient loadFile:plan.path intoPath:self.projectsLocalPath];
。将文件保存到此目录时没有错误。
答案 0 :(得分:4)
致电:
[self.restClient loadFile:plan.path intoPath:self.projectsLocalPath];
您要求其他客户端将文件放在文件夹位置 - 替换文件夹 - 而不是将其放在文件夹中。
您需要创建目标文件的完整路径,包括文件夹中的文件名。