【问题标题】:copy all files with extension to documents directory将所有带有扩展名的文件复制到文档目录
【发布时间】:2011-08-18 11:33:38
【问题描述】:

我在将文件从在线位置复制到 xcode 中 iPad 的文档目录时遇到了一点问题。 我要下载的文件必须是扩展名为“xml”的文件。

现在我正在这样做:

NSData *onlineLink = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://localhost:8888/"]];
NSString *extension = @"xml";
NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];


NSArray *contents = [fileManager contentsOfDirectoryAtPath:onlineLink error:NULL];  
NSEnumerator *e = [contents objectEnumerator];
NSString *filename;
while ((filename = [e nextObject])) {

    if ([[filename pathExtension] isEqualToString:extension]) {
        [fileManager copyItemAtPath:[documentsDirectory stringByAppendingPathComponent:filename toPath:documentsDirectory error:NULL]];
    }
}

但是这不起作用,我得到这个错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSConcreteData fileSystemRepresentation]: unrecognized selector sent to instance 0xb000800'

谁能告诉我为什么我会收到错误消息?

【问题讨论】:

  • 哪一行导致了这个错误?你能发布整个堆栈跟踪吗?
  • 你能发布整个堆栈跟踪吗?
  • 我已经解决了问题,问题是我没有正确调用该函数...无论如何感谢您的支持!
  • 哪个函数调用不正确,我需要使用你的代码,提前谢谢

标签: objective-c ipad nsdocumentdirectory


【解决方案1】:

在行中:

NSArray *contents = [fileManager contentsOfDirectoryAtPath:onlineLink error:NULL];  

contentsOfDirectoryAtPath 应该是一个 NSString,你传递的是一个 NSData 对象

【讨论】:

  • @Snowy 你能发布整个堆栈跟踪吗?
  • @Snowy:请解释为什么您认为 Jamie 的帖子不正确。您发布的错误来自尝试调用fileSeystemRepresentation,这是一个NSString 方法,在您传递给contentsOfDirectoryAtPath: 的对象上被调用。您传递的是 NSData 对象,而不是 onlineLink
猜你喜欢
  • 1970-01-01
  • 2015-06-12
  • 2011-12-17
  • 2012-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多