目录 目录包含文件和其他目录,每一个目录由一个目录 项表示。通过RDir类允许打开目录并读取它包含的项。 有几种不同的方式读取目录的内容。最直接了当、 但不一定是最有效的方式如卜所示。 void ReadDirContentsL(RFs&aFs,const TDesC& aDirName) RDir myDir; TInt err; User:LeaveIfError (myDir.Open (aFs,KDirName, KEntryAttNormal KentryAttDir)); TEntry currentEntry;
16 目 录 目录包含文件和其他目录,每一个目录由一个目录 项表示。通过RDir类允许打开目录并读取它包含的项。 有几种不同的方式读取目录的内容。最直接了当、 但不一定是最有效的方式如卜所示。 void ReadDirContentsL(RFs& aFs, const TDesC& aDirName) { RDir myDir; TInt err; User::LeaveIfError(myDir. Open(aFs,KDirName, KEntryAttNormal | KentryAttDir)); TEntry currentEntry;
目录 FOREVER err=myDir.Read(currentEntry); if (err) break; //无更多项或者其他错误 //处理该项 myDir.Close ( if(err!=KErrEof) //EOF表示无更多项可读 { User::LeaveIfError (err);
17 目 录 FOREVER { err=myDir.Read(currentEntry); if (err) { break; //无更多项或者其他错误 } // 处理该项 } myDir. Close () if (err != KErrEof) // EOF表示无更多项可读 { User::LeaveIfError (err); } }
录 每次调用Read()读取一项,在内存使用需要最小化 的情况下有用。然而,多次调用服务器函数效率很低, 因此RDir也提供了Read()的重载,在单次调用中将全部 项读入一个TEntryArray。与许多其他涉及与服务器通信 的函数一样,另外两个重载提供从活动对象使用的两种 类型Read()的异步版本。 除了Rdir的Read(O函数外,RFs还提供一组GetDir(O 函数,为了在单次调用中将日录的内容读入CDr。从下 列代码可见,这创建与前一个示例类似的项列表, GetDir()也允许定义结果列表的排列顺序
18 目 录 每次调用Read()读取一项,在内存使用需要最小化 的情况下有用。然而,多次调用服务器函数效率很低, 因此RDir也提供了Read()的重载,在单次调用中将全部 项读入一个TEntryArray。与许多其他涉及与服务器通信 的函数一样,另外两个重载提供从活动对象使用的两种 类型Read()的异步版本。 除了Rdir的Read()函数外,RFs还提供一组GetDir() 函数,为了在单次调用中将日录的内容读入CDir。从下 列代码可见,这创建与前一个示例类似的项列表, GetDir()也允许定义结果列表的排列顺序
录 void ReadDirContentsL(RFs&aFs, const TDesC& aDirName) CDir*dirList; User :LeaveIfError (aFs.GetDin (aDirName, KEntryAttNormal,ESortByName, dirList)); /处理该项 delete dirList;
19 目 录 void ReadDirContentsL(RFs& aFs, const TDesC& aDirName) { CDir* dirList; User :: LeaveIfError (aFs. GetDir (aDirName, KEntryAttNormal, ESortByName, dirList)); //处理该项 delete dirList; }
录 可以更改目录项的属性,包括隐藏、系统、只读和 存档位。有真正明确意义的惟一位是“只读”。如果文 件定义为只读,那么将不能写入或删除它。为了与VFAT 严格匹配,也支持其他属性,但是它们在Symbian OS中 并不重要,因此最好不要使用它们。 Symbian OS:按UTC维护目录项时间为准,而不是按本 地时间,因此没有时区更改导致混淆的风险
20 目 录 可以更改目录项的属性,包括隐藏、系统、只读和 存档位。有真正明确意义的惟一位是“只读”。如果文 件定义为只读,那么将不能写入或删除它。为了与VFAT 严格匹配,也支持其他属性,但是它们在Symbian OS中 并不重要,因此最好不要使用它们。 Symbian OS按UTC维护目录项时间为准,而不是按本 地时间,因此没有时区更改导致混淆的风险