2009-12-03 108 views
2

S60上的文件或文件夾是否有一些可識別它們的唯一ID值?文件和監視文件系統更改的唯一標識

我想有一個id,可以稍後用於提取文件或文件夾的完整路徑。這是可以實現的嗎?

如果不是,跟蹤感興趣的文件的最佳方法是什麼? 例如如果我有一個pdf閱讀器,並且我想要一個菜單​​選項來顯示系統上的所有pdf文件 - 我每次選擇此選項時如何防止我的應用程序在整個系統中搜索?我的應用程序處於活動狀態時可以一次搜索並輕鬆監視更改嗎?

謝謝。

+0

文件的唯一標識是它們的名稱「不幸」。 – Dynite 2010-02-04 17:27:03

回答

1

我無法在Symbian OS C++ API中看到任何可以完全按照您的需要來做的事情。

使用RF :: NotifyChange()可能是您最好的選擇。

+0

RFs :: NotifyChange()有一個缺點,就是沒有太多關於觸發事件的更改的信息。例如,如果我在C:\\ Documents \\下有一個3000個文件,並且創建了一個新文件,那麼就有3001個文件,但我必須通過所有這些文件,創建一個新文件列表,並比較帶有3000個文件列表的3001個文件的新列表,以找出已創建的文件。這太過分了! – 2009-12-03 21:50:20

+0

CFileMan在這裏是你的朋友,但是,是的,對於那些應該很簡單的事情來說,它需要很多處理。請隨時聯繫Symbian內核和硬件服務包業主,瞭解有關將此添加到平臺的信息。 – 2009-12-04 10:19:10

+1

我在今年夏天添加了你正在猜測的框架。這是因爲我相信10.1。代碼已經發布但已禁用。 看看CFsNotify http://developer.symbian.org/xref/epl/xref/MCL/sf/os/kernelhwsrv/userlibandfileserver/fileserver/inc/f32notification.h#140 – Dynite 2010-02-04 17:15:27

0

是的,將它們編入索引並使用RF :: NotifyChange()。 ID如何幫助識別新文件?

+0

ID會幫助,因爲我可以只跟蹤ID而不是完整路徑。如果有一個ID,操作系統會跟蹤將文件從一個位置移動到另一個位置,我不必更新我的內部文件列表。 – 2009-12-03 21:49:07

+0

我明白你的觀點。有一個獨立於路徑名的文件的UID會很好,是的。 – 2009-12-07 13:27:17