首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

对于树型文件目录,有什么高速的查找算法

2014-01-01 
对于树型文件目录,有什么快速的查找算法?我在写一个文件打包工具,支持树型文件结构。请问,查找某个路径下的

对于树型文件目录,有什么快速的查找算法?
我在写一个文件打包工具,支持树型文件结构。
请问,查找某个路径下的文件,有什么快速的查找算法?
[解决办法]

引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

system("dir /b /a-d c:\\*.* >d:\\allfiles.txt");
//读文件d:\\allfiles.txt的内容即C:\\下所有文件的名字
system("dir /b /a-d /s c:\\*.* >d:\\allfilesinsub.txt");
//读文件d:\\allfilesinsub.txt的内容即C:\\下所有文件的名字包含子目录
system("dir /b /ad  c:\\*.* >d:\\alldirs.txt");
//读文件d:\\alldirs.txt的内容即C:\\下所有子目录的名字
请记住,能用shell命令获取文件、文件夹信息或者操作文件、文件夹最好用shell命令获取或者操作,而不要用各种API获取或者操作,因为当遇到非法文件夹名或非法文件名或非法文件长度、非法文件日期、压缩文件、链接文件、稀疏文件……等各种意料之外的情况时,API会处理的不全面或陷入死循环,而shell命令不会。


你劳师动众地用shell不是自寻烦恼,还是保存到文件里~
LZ分明是自己想弄个工具,其中包含文件查找的功能,你却非要LZ用shell命令,看起来还是用c++调用shell命令~



我是在设计游戏的封包格式,以前为了省事,只支持2级树,现在想做成无限层级的树型结构。
如果没什么好的方法,我就直接在初始化的时候,将所有文件路径和他的offset保存到map里,然后获取某个文件的时候,用这个map获得其offset

你这也是个办法啊,实现起来也不麻烦。boost里有个支持多重索引的map和set,如果你不光用文件名索搜,还想用修改日期,文件大小之类的搜索,可以考虑用那个东西,否则用map就够了


我还是宁愿效率差一些,也要让代码简洁易读。能不用class,就不用class,能不用第3方库就不用第3方库


那你就用map喽,stl应该不算第三方库吧,而且对你以前代码也改动比较小,也不需要另外搞个class,只要给你以前写的类里加个成员变量就行了,并且map的查找效率还是非常高的,这不是完全符合你的要求嘛


在想想,或许能找到一种用线性结构存储树形文件的方法,


数组和线性链表都能实现存放树,但对于数组插入数据效率会很杯具,但用链表,你得弄两份,一份放数据,一份放拓扑结构,除了遍历实现起来方便,没一点比一般的树形结构好吧~

热点排行