一个文件或目录,在DOS时代,可以获得其硬盘索引作为其唯一标识码,现在WIN下如何获得,想以此作为目录树中节点的key(关键字)使用,要求能互相转换,即以文件名能获得其标识码,以标识码能获得其文件名。

解决方案 »

  1.   

    最方便的就是使用 .ini 文件 建立文件名的标识码 方便快速
      

  2.   


    我是用treeview 浏览目录及文件,文件都是随时变化的,你用.ini建立文件名的标识码?不明白你的意思。
      

  3.   

    对路径完整值做一个hash,比如做md5编码。
    要考虑等效路径,比如大小写、DOS路径,以及包含相对路径的情况,先转化为一种标准形式。
      

  4.   

    对路径进行可逆编码,比如压缩.要反查时解出来就行.这样的话代码改动比较小.但话说回来,直接用路径做KEY也行啊.反正KEY可以是字符串,挺长都行.
      

  5.   

    本帖最后由 bcrun 于 2010-11-15 11:43:48 编辑
      

  6.   


    没错,我现在就是直接用路径做KEY,但总感觉太占用空间,且影响速度。想找个更好的办法。
      

  7.   

    做KEY 键值当然越短越好 只有爱能识别的代号ID即可 速度基本上没其它可比了 多国语言的程序或程序里面的位置尺寸之定义,太多太多都是用 .ini 其实Treeview的作用也就是主值键值最近刚做了一套系统 还非得用INI不可, 无缝播放 争取的就是人类的视觉暂留的几毫秒 呵呵还容得你去读数据库?[项目]
    SHTX01=E:\Music\守护甜心(第02集)[2].mp4;2.966;12.966
    AVI2=E:\新建文件夹 (2)\飞越未来(高清DVD).rmvb;4595.712;4605.712
    喀秋莎-1=E:\Music\Dance\DAT\吉特巴.DAT;5.954;16
    喀秋莎-2=E:\Music\Dance\DAT\吉特巴.DAT;76.415;86
    喀秋莎-3=E:\Music\Dance\DAT\吉特巴.DAT;108.751;118
    mp4-1=E:\Music\2012.2009.PSP.mp4;11.140;21
    avi-1=E:\Music\阿凡达TC中英字幕目前最清晰版美国09最新科幻大片6VDY原_new.avi;6.438;16
    avi-2=E:\Music\阿凡达TC中英字幕目前最清晰版美国09最新科幻大片6VDY原_new.avi;542.589;552.589
    mp4-3=E:\Music\2012.2009.PSP.mp4;990.117;1000
    MP4-2=E:\Music\2012.2009.PSP.mp4;401.980;411
      

  8.   

    .ini 是个文件 你可以假想它就是文件 可读可写 随机随存 你用关键值摆在前面 = 路径
      

  9.   

    没什么好影响的吧.如果实在想短,那你自己做个表呗.dim Paths() as string,Keys() as longpaths(x)="d:\xxxxx\yyyy\zzzz\"时让keys(x)=####那这样的话你还要写一套这种表的管理过程,添加,删除,取ID,取路径...