我正在尝试复制一个文件夹,并且它的内容是文档目录中的子目录,并且失败了错误:"操作无法完成。没有这样的文件或目录"
首先,我尝试在文档目录中创建一个文件夹:
NSString *diagramsDirectory = [docDirectory stringByAppendingPathComponent:@"Diagrams"];
if (![fileManager fileExistsAtPath:docDirectory isDirectory:&isDirectory] || !isDirectory)
{
NSError *error = nil;
NSDictionary *attr = [NSDictionary dictionaryWithObject:NSFileProtectionComplete
forKey:NSFileProtectionKey];
[fileManager createDirectoryAtPath:diagramsDirectory
withIntermediateDirectories:NO
attributes:attr
error:&error];
if (error) {
NSLog(@"error creating dir. path: %@", [error localizedDescription]);
}
}
NSLog(@"diagrams directory = %@", diagramsDirectory);
控制台日志似乎表明了这项工作:
diagrams directory = /Users/../iPhone Simulator/../Library/Documentation/Diagrams
但是,当我尝试从Mac上的目录中复制一个名为"图表"的文件夹时:
NSString *pathToDirectories = @"/User/Desktop/Project Resource Files/Files/";
NSError *error = nil;
NSArray *folders = [fileManager contentsOfDirectoryAtPath:pathToDirectories error:&error];
for (NSString *folder in folders) {
if ([folder isEqualToString:@"Diagrams"]) {
[self copyFolderAtPath:folder toDestinationFolderAtPath:docDirectory];
}
称为" copyfolderatpath"方法:
- (BOOL)copyFolderAtPath:(NSString *)sourceFolder toDestinationFolderAtPath:(NSString *)destinationFolder
{
destinationFolder = [destinationFolder stringByAppendingPathComponent:[sourceFolder lastPathComponent]];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error = nil;
// check for destination folder
if ([fileManager fileExistsAtPath:destinationFolder])
{
if (![fileManager removeItemAtPath:destinationFolder error:&error])
{
NSLog(@"Could not remove old files. Error: %@", error);
return NO;
}
}
error = nil;
// copy destination
if (!([fileManager copyItemAtPath:sourceFolder toPath:destinationFolder error:&error])) {
NSLog(@"failed copying file at path %@ to path %@. Error %@", sourceFolder, destinationFolder, error);
return NO;
}
return YES;
}
它返回"否",我收到错误。
有人知道我做错了什么?
设备(以及模拟器)与操作系统隔离,因此您不能直接执行文件系统副本。想象一下,即使您可以通过模拟器进行操作,运行应用程序的断开设备将如何访问OS文件系统?
您将必须查看其他选项,例如在Mac上使用插座的应用程序或设备复制的Mac上的HTTP终点点。其他选项包括通过iCloud或其他云服务同步文档。您还可以通过iTunes传输文件。我敢肯定还有许多其他选择...还要结帐此