2009-09-18 4 views
1

мое приложение фактически отправляется в разные папки и учитывает каждый файл и считывает каждый файл и выполняет большую обработку на них и маркирует папку, которую она обработала, как сделано. но это не происходит, так как система немедленно генерирует такие файлы, как .DS_store и .localized и .trash. так есть ли какой-либо механизм пропускать обработку скрытых файлов или остановить os от создания этих файлов программно?cocoa + skip os сгенерированные файлы

Благодаря

ответ

0

Я не знаю ни одного варианта, который отключает генерацию .DS_Store файлов локально. Существует опция для удаленного, here.

Другой способ сделать это может заключаться в создании пользователя unix только для этой работы и предоставления ему полномочий, чтобы Finder никогда не мог туда попасть. Либо запускайте работу вручную, используя sudo, либо сделайте это заданием setuid .. или используйте launchd.

+0

Спасибо neoneye за ответ. есть ли способ определить, является ли файл скрытым файлом os? или вы можете перечислить файлы, которые генерируются os для папок. Я знаю три из них 1. .DS_Store 2. .localized 3. .trash Есть ли другие скрытые файлы, которые являются сгенерированными ОС для MAC. Спасибо – King

+0

Существует также .CFUserTextEncoding в homedir. Если вы посмотрите в корневом каталоге тома, есть еще несколько скрытых файлов: 1. .fseventsd 2. .HFS + данные личного каталога 3.Spotlight-V100 4. TemporaryItems 5. \\\\ HFS + личные данные 6. .com .apple.timemachine.supported 7. .journal 8. .journal_info_block. Возможно, у вас может быть текстовый файл для вашей программы с игнорируемыми именами файлов, чтобы вы все еще могли обрабатывать dotfiles и игнорировать файлы системы Apple. – neoneye

+0

Также скрытый флаг установлен только для некоторых файлов. – neoneye

2

Не могли бы вы изменить свое приложение, чтобы просто игнорировать файлы, начинающиеся с «.»? Вы отметили это Cocoa, поэтому используйте что-то вроде NSFileManager's contentsOfDirectoryAtURL: includingPropertiesForKeys: options: error: кажется подходящим. Одним из параметров, которые вы можете указать, является NSDirectoryEnumerationSkipsHiddenFiles, который будет пропускать скрытые файлы. Для получения более подробной информации проверьте documentation.

+0

Спасибо, Марк. Но если я пропущу файлы, которые я начинаю с '.' то все скрытые файлы будут пропущены даже файлы, которые не генерируются os. есть ли какой-либо метод для определения, был ли файл сгенерирован или нет? – King

+0

Я предполагаю, что это будет зависеть от того, что вы подразумеваете под «os generated». Много точечных файлов генерируются различными частями ОС. Finder делает некоторые, поиск Spotlight делает некоторые другие, Time Machine делает некоторые и т. Д. И т. Д., Поэтому не будет исчерпывающего списка в любом месте. Многие сторонние программы также создают скрытые файлы. Я думаю, что вам нужно будет составить список «файлов, которые нужно игнорировать» в вашем приложении. Удостоверьтесь, что он также редактируется пользователем - некоторые редакторы используют dot-файлы для резервного копирования, а затем есть .svn-каталоги ... –

+0

И для чего это стоит, большинство инструментов командной строки игнорируют скрытые файлы, если они не являются специфическими сказал, чтобы обработать их. Вы уверены, что будут скрытые файлы, которые вы хотите обработать? –