У меня есть проблема, у меня есть папка url, папка, которая хранится на этом URL-адресе, существует, и все в порядке. Проблема в том, что contentsOfDirectoryAtURL:includingPropertiesForKeys:options:error:
возвращается с ошибкой.Mas OS X: ошибка в содержимомОфдикторияAtURL метод
My NSURL в папку NSString, выполненная из другого метода, который принимает NSURL и сохраняет его как объект absoluteString. Вот мой код:
NSURL *folderURL = [NSURL fileURLWithPath:folderPathString isDirectory:YES];
if ([folderURL isFileURL]) {
NSLog(@"it's file"); // I see this in console
}
NSError *error;
// array of NSURL objects
NSArray *contentOfFolder = [[NSFileManager defaultManager] contentsOfDirectoryAtURL:folderURL
includingPropertiesForKeys:@[NSURLContentModificationDateKey,NSURLFileResourceTypeKey, NSURLLocalizedNameKey]
options:NSDirectoryEnumerationSkipsHiddenFiles
error:&error];
if (error) {
NSLog(@"%@",error);
}
Это часть моего метода, в консоли, я вижу ошибку:
Error Domain=NSCocoaErrorDomain Code=260 "The file “myFolder” couldn’t be opened because there is no such file." UserInfo=0x10051b0a0 {NSURL=file:/localhost/Users/myUser/myRootFolder/myFolder/ -- file://localhost/Users/myUser/Library/Developer/Xcode/DerivedData/myProject-algooymkavrtmlchwnlbrmvcbvzj/Build/Products/Debug/, NSFilePath=/Users/myUser/Library/Developer/Xcode/DerivedData/myProject-algooymkavrtmlchwnlbrmvcbvzj/Build/Products/Debug/file:/localhost/Users/myUser/myRootFolder/myFolder, NSUnderlyingError=0x100526f40 "The operation couldn’t be completed. No such file or directory"}
Я не понимаю, почему я получаю эту ошибку. Как я могу получить ошибку No such file or directory
, если этот каталог существует ?!
EDIT
Я обнаружил, что после того, как метод fileURLWithPath:isDirectory:
моя папка URL выглядит странно, когда я смотрю на него с NSLog.
NSLog(@"folder url %@",folderURL);
выход:
folder url file:/localhost/Users/myUser/myRootFolder/myFolder/
-- file://localhost/Users/myUser/Library/Developer/Xcode/DerivedData/myProject-algooymkavrtmlchwnlbrmvcbvzj/Build/Products/Debug/
Почему вторая часть появится? (часть, начинающаяся с -- file://localhost/Users/myUser/Library/...
). Я думаю, проблема с этим, но что я делаю неправильно? Является ли метод fileURLWithPath:isDirectory:
неприемлемым для моих целей?
Помимо основного вопроса, ** никогда не проверяйте 'error' без предварительного тестирования' contentOfFolder' - http://blog.bignerdranch.com/360-an-nserror-error/ –