Как скрыть файл пакетов, как example.app? - PullRequest
0 голосов
/ 21 июня 2019

Я перечисляю каталоги в Набросках и не могу найти, как скрыть файлы пакета.

let urls = try FileManager.default.contentsOfDirectory(at: url,                                                                   
                  includingPropertiesForKeys: [.isDirectoryKey],                                                                   
                  options: [.skipsHiddenFiles, .skipsPackageDescendants])

Я могу только пропустить обычные файлы, такие как text.txt Все файлы с расширением .app перечислены

1 Ответ

1 голос
/ 21 июня 2019

Опция skipsPackageDescendants предназначена для предотвращения глубокого обхода каталога от до пакетов.Флаг не означает «игнорировать все пакеты».На самом деле это означает «не перечислять содержимое внутри пакета».

contentsOfDirectory() не выполняет глубокого обхода каталога, поэтому опция в этом контексте не имеет смысла.Метод enumerator(at:...) соблюдает этот флаг, не перечисляя файлы внутри пакета .app;он по-прежнему будет перечислять сам .app.

Если вы не заинтересованы в определенных типах файлов, вы должны использовать

let urls = try FileManager.default.contentsOfDirectory(
  at: url,
  includingPropertiesForKeys: [.isDirectoryKey],                                                                   
  options: [.skipsHiddenFiles]
).filter { $0.pathExtension != "app" }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...