fileExistsAtPath: (NSFileManager) - PullRequest
       3

fileExistsAtPath: (NSFileManager)

1 голос
/ 30 июля 2010

Должен ли этот метод принимать путь в качестве аргумента?

Похоже, что в качестве пути ему нужно имя файла:

Например, /home/file.txt - это файл, а / home / - это путь. Этот метод выглядит так, как будто он принимает первый в качестве аргумента.

Ответы [ 3 ]

7 голосов
/ 30 июля 2010

Ваше различие между «путем» и «файлом» не является обычным явлением в Unix. Является ли последний элемент пути файлом или нет, это не влияет на тот факт, что это путь. «/home/file.txt» выглядит как абсолютный путь к файлу (хотя на самом деле это может быть обманчиво названный каталог). "/ home /" - это абсолютный путь к каталогу. Оба пути. (Так же как и «foo / bar» - вы бы назвали это «файлом» или «путем» в вашей терминологии? Без проверки объекта по этому пути мы не можем знать, называет ли он каталог или файл.) использует термин в его обычном смысле.

2 голосов
/ 30 июля 2010

Если вы хотите найти различия между файлами и папками, см. -fileExistsAtPath: isDirectory: .

Использование:

BOOL isDirectory;
if ([self fileExistsAtPath:@"/Users/me/Subfolder" isDirectory:&isDirectory] && isDirectory)
{
    // Exists and is a directory. Isn't that neat?
}
2 голосов
/ 30 июля 2010

Да, требуется строка, которая является путем - см. Документацию :

Параметры
путь
Путь к файлу или каталогу.Если путь начинается с тильды (~), его сначала нужно расширить с помощью stringByExpandingTildeInPath, или этот метод возвращает NO.

Обратите внимание, что /home/file.txt - это путь, так же, как /home/.Однако первый не является каталогом , а последний -

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...