现在我在用遍历来取得路径,但速度真的太慢了。不知道大家有没有更快更好的方法介绍一下给我,API也行。最好有参考代码和你测试的结果,谢谢

解决方案 »

  1.   

    这么多啊
    Directory.GetFiles 不知道行不行
      

  2.   

    那你可以试试FileSystemWatcher 类
      

  3.   

    http://www.west263.com/info/html/chengxusheji/C-C--/20080224/13273.html
      

  4.   

    成员名称 说明 
     Created 文件或文件夹的创建。 
     Deleted 文件或文件夹的删除。 
     Changed 文件或文件夹的更改。更改的类型包括大小、属性、安全设置、最近写入时间和最近访问时间方面的更改。 
     Renamed 文件或文件夹的重命名。 
     All 文件或文件夹的创建、删除、更改或重命名。 
      

  5.   

    WIN32API来遍历文件和目录 
    FindFirstFile,FindNextFile和FindClose 
    http://topic.csdn.net/u/20090716/19/e5c41676-57e3-4a9a-847b-31fbb602f123.html?4588
      

  6.   

    我认为,象你这种需求、这么大的量,只有监视文件及文件夹才行
    遍历的方法是不足取的
    如果FileSystemWatcher不好用的话,应该查找相关的API来操作
    遍历一个效率慢,另一个实时性差
      

  7.   

    http://blog.csdn.net/ck11926375/archive/2009/07/26/4382339.aspx以前做资源文件的小程序,delphi调用API实现的。
    希望对楼主有帮助
      

  8.   

    不遍历怎么得到?
    API也是遍历的
      

  9.   

    你对文件的任何操作都是要通过操作系统的
    WINDOWS在你操作文件的时候发个消息来不就行啦当然,你直接读写扇区的可能不是这样
      

  10.   

    我也是这样认为的,只是对于有一些要求是对现有目录里的文件进行同步。在同步的时候这个目录是不会发生对目录的新操作的你说的什么创建和修改和删除的事件是没有的,所以FILESYSTEMWATCHER在此情况下没用遍历效率对大量文件的目录真的效率低
      

  11.   

    你有没有仔细看FileSystemWatcher所提供的事件啊
      

  12.   

    已经在使用了。我的意思是说对现在的文件是无效
    就是说同步开始后,这个目录是不会发生文件的创建,修改,删除。。所以FILESYSTEMWATCHER是不会收到系统发过来消息的那你说有用吗?
      

  13.   

    楼的需求是不是有一批文件,例如白天可能对部分文件进行修改操作
    到晚上例如下班前,希望将今天所有的改动过的文件进行备份一下
    如果这样的话,可以考虑通过文件的A(归档)属性来识别,你第一次备份完后,去掉所有文件的A属性,以后只备份具有A属性的文件