[英]Copy Folder (w/contents) from bundle to Documents directory - iOS
[英]copy OSX folder to iOS directory
我正在尝试将一个文件夹及其内容复制到文档目录中的子目录,并且失败并显示以下错误:“操作无法完成。没有这样的文件或目录”
首先,我尝试在文档目录中创建一个文件夹,如下所示:
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上的目录复制名为“ Diagrams”的文件夹时:
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传输文件 。 我敢肯定有很多其他选择......而且结帐这个
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.