2013-08-30 1 views
0

У меня есть проблема, у меня есть папка 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: неприемлемым для моих целей?

+0

Помимо основного вопроса, ** никогда не проверяйте 'error' без предварительного тестирования' contentOfFolder' - http://blog.bignerdranch.com/360-an-nserror-error/ –

ответ

1

folderPathString в

NSURL *folderURL = [NSURL fileURLWithPath:folderPathString isDirectory:YES]; 

должен быть простым путем, например, "/ Путь/к/директории". В вашем случае это строковый URL-адрес «file: // localhost/path/to/dir», что неверно.

Я предполагаю, что folderPathString создается из некоторых NSURL с помощью

folderPathString = [anURL absoluteString]; 

Это неправильно и должно быть

folderPathString = [anURL path]; 

Это также может быть возможным, чтобы избежать преобразования из URL в строку и обратно URL в целом.

+0

Вы правы , благодаря!:) –