2009-09-18 17 views
1

我的應用程序實際上會轉到不同的文件夾並將每個文件考慮在內,並讀取每個文件並對它們執行大量處理,並將其處理完成的文件夾標記爲已完成。但是這不會發生,因爲系統會立即生成類似.DS_store和.localized和.trash的文件。那麼是否有任何機制來跳過處理隱藏文件或停止os以編程方式生成這些文件?cocoa + skip os生成的文件

感謝

回答

0

我不知道當地禁用的.DS_Store文件的生成任何選項。有一個遠程選項,here

另一種方法可能是爲該工作創建一個unix用戶,讓他擁有這些dirs,以便Finder永遠不會去那裏。無論是使用sudo手動啓動作業,還是將其設置爲setuid作業..或使用launchd。

+0

感謝neoneye的回覆。有沒有什麼辦法來確定一個文件是否是os生成的隱藏文件? 或者你可以列出爲文件夾生成的文件。我知道他們三個 1. .DS_Store 2. .localized 3. .trash 是否有任何其他隱藏文件是操作系統生成文件的MAC。 謝謝 – King 2009-09-18 01:10:27

+0

homedir中還有一個.CFUserTextEncoding。如果您查看卷的根目錄,還有一些更隱藏的文件:1. .fseventsd 2. .HFS +個人目錄數據3. .Spotlight-V100 4. TemporaryItems 5. \\\\ HFS + Private Data 6. .com .apple.timemachine.supported 7.journal 8.journal_info_block。也許你可以爲你的程序設置一個文本文件,並忽略文件名,這樣你仍然可以處理點文件並忽略這些蘋果系統文件。 – neoneye 2009-09-18 07:44:11

+0

此外,隱藏標誌僅在某些文件上設置。 – neoneye 2009-09-18 07:48:00

2

難道你不能改變你的應用程序忽略以「。」開頭的文件嗎?你已經標記了這個Cocoa,所以使用類似NSFileManager的contentsOfDirectoryAtURL:includesPropertiesForKeys:options:error:似乎是合適的。您可以指定的選項之一是NSDirectoryEnumerationSkipsHiddenFiles,它將跳過隱藏的文件。 查看documentation瞭解更多詳情。

+0

謝謝馬克。但是,如果我跳過我以'開頭'的文件。那麼即使是不是由os生成的文件,所有隱藏的文件也會被跳過。是否有任何方法來確定文件是否生成或不? – King 2009-09-18 17:26:48

+0

我想這將取決於你的意思是「os生成」。很多點文件都是由操作系統的不同部分生成的。 Finder會做一些搜索,Spotlight搜索會做一些其他的事情,Time Machine會做一些等等,所以在任何地方都不會有全面的列表。 許多第三方軟件也會製作隱藏文件。我認爲你將不得不在你的應用中創建一個「忽略文件」列表。確保它也是用戶可編輯的 - 某些編輯器使用點文件進行備份,然後有.svn目錄... – 2009-09-18 21:28:55

+0

對於它的價值,大多數命令行工具忽略隱藏文件,除非它們是專門被告知處理它們。你確定將要處理隱藏文件嗎? – 2009-09-18 21:30:35