首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FileSystemWatcher

FileSystemWatcher
EN

Stack Overflow用户
提问于 2009-07-13 12:25:12
回答 2查看 1.3K关注 0票数 1

我遇到了一个关于filewatcher的问题。我的要求是,当我们复制一个大小为1 GB或更大的文件夹时,文件软件应该只记录X文件夹创建的一次更改,而不是给出X下面的文件的创建事件。我想计算所有与"X“文件夹复制的文件的MD5校验和。你能在这方面给点建议吗?

代码语言:javascript
复制
    public static string[] GetFilesAndFolders(string path)
    {
        foreach (string dirs in Directory.GetDirectories(path))
        {
            fileandFolderNames[counter] = dirs;
            counter++;
            foreach (string files in Directory.GetFiles(dirs))
            {
                fileandFolderNames[counter] = files;
                counter++;
            }
            GetFilesAndFolders(dirs);
        }
        return fileandFolderNames;
    }
EN

回答 2

Stack Overflow用户

发布于 2009-07-13 12:32:18

由于复制大型文件夹不是单个操作,而是由多个单独的复制操作组成,因此FileSystemWatcher无法确定整个文件夹的复制操作何时完成。因此,它将分别为您提供有关每个文件的通知。我的建议是单独处理每个文件。复制完成后(触发FileSystemWatcher事件),计算MD5并放入字典。

票数 3
EN

Stack Overflow用户

发布于 2009-07-13 12:50:21

您应该知道的一件事是,递归地复制所有文件和文件夹是一个等待发生的堆栈溢出。有关如何将目录层次结构转换为非递归IEnumerable类的信息,请参阅this questionthis blog post

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1119147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档