2009-12-03 110 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