fileExistsAtPath
возвращает NO для каталога, который существует. Если у меня есть следующий код:fileExistsAtPath возвращает NO для каталога, который существует
NSURL *newDirectoryPath = ... // path does not begin with a tilda
// and is created using URLByAppendingPathComponent:isDirectory:
BOOL directoryExists = [self.fileManager fileExistsAtPath:[newDirectoryPath absoluteString]];
if (NO == directoryExists)
{
BOOL ret = [self.fileManager moveItemAtURL:self.currentPresentationDirectoryPath toURL:newDirectoryPath error: &err];
// ret is YES, err is nil
directoryExists = [self.fileManager fileExistsAtPath:[newDirectoryPath absoluteString]];
}
Даже если каталог только что был успешно создан с moveItemAtURL
, fileExistsAtPath
все еще возвращается NO.
Я знаю, что в документации говорится следующее:
Попытка предиката поведения в зависимости от текущего состояния файловой системы или конкретного файла в файловой системе не рекомендуется. Это может привести к нечетному поведению в случае состояния системы .
Но я хочу, чтобы понять, что вопрос здесь - если закрыть приложение и перезапустить его, то первая проверка fileExistsAtPath
в приведенном выше коде все еще возвращаются НЕТ, даже если каталог был ранее успешно создан во время предыдущее выполнение кода, и я могу видеть каталог в Organizer, и я также могу успешно прочитать содержимое каталога и т. д.
PS есть нет fileExistsAtURL
: способ?
NSLog путь, который вы используете, и убедитесь, что это так, как вы думаете. –
Не удается проверить на этой машине, но не предполагается, что это [newDirectoryPath путь] вместо [newDirectoryPath absoluteString]? –
@ Джойхим Исакссон - это было -thanks – Gruntcakes