FileSystemWatcher,并查找目录的最终大小

时间:2014-01-17 14:15:48

标签: c# filesystemwatcher

我正在使用FileSystemWatcher在目录中查找任何已创建的目录。具体来说,我使用另一个函数来查找创建的文件是否是一个目录,如果它是一个目录,我将文件路径传递给另一个检查目录大小的函数。

即,目录创建>检查它是否是目录>如果是,请检查目录的大小。

目录文件大小功能:

    long DirectorySize(DirectoryInfo d)
    {
        long Size = 0;
        // Add file sizes.
        FileInfo[] fis = d.GetFiles();
        foreach (FileInfo fi in fis)
        {
            Size += fi.Length;
        }
        // Add subdirectory sizes.
        DirectoryInfo[] dis = d.GetDirectories();
        foreach (DirectoryInfo di in dis)
        {
            Size += DirectorySize(di);
        }
        return (Size);
    }

用于发现文件是否是目录的简单检查:

    bool isDirectory(string pathName)
    {
        // get the file attributes for file or directory
        FileAttributes attr = File.GetAttributes(pathName);

        //detect whether its a directory or file
        if ((attr & FileAttributes.Directory) == FileAttributes.Directory)
            return true;
        else
            return false;
    }

然而,这是一个问题。我想在执行检查文件大小功能之前完全写入文件。一次,只有一次,如果要进行检查,文件就完全写好了。

我知道代码存在,例如this,但是它稍微偏离了我想要做的主题,因为我不想打开文件,只找到它的大小。在检查文件大小之前,是否有办法检查文件是否已完全写入?

0 个答案:

没有答案
相关问题