gpt4 book ai didi

c# - 使用 FileSystemWatcher 检测文件夹重命名

转载 作者:太空宇宙 更新时间:2023-11-03 22:43:21 25 4
gpt4 key购买 nike

我有一个基于文件的应用程序。除了目录重命名之外,FileSystemWatcher 对于我的大部分用途都可以正常工作。这是代码示例:

   class Program
{
static void Main(string[] args)
{
var directoryWatcher = new FileSystemWatcher("D:\\Test")
{
NotifyFilter = NotifyFilters.CreationTime | NotifyFilters.Attributes | NotifyFilters.FileName | NotifyFilters.LastAccess |
NotifyFilters.LastWrite | NotifyFilters.Security | NotifyFilters.Size,
Filter = "*.*"
};
directoryWatcher.EnableRaisingEvents = true;
directoryWatcher.IncludeSubdirectories = true;
directoryWatcher.Changed += FolderChanged;
directoryWatcher.Created += FolderCreated;
directoryWatcher.Deleted += FolderDeleted;
directoryWatcher.Renamed += FolderRenamed;
Console.ReadLine();
}

private static void FolderRenamed(object sender, RenamedEventArgs e)
{
}

private static void FolderDeleted(object sender, FileSystemEventArgs e)
{
}

private static void FolderCreated(object sender, FileSystemEventArgs e)
{
}

private static void FolderChanged(object sender, FileSystemEventArgs e)
{
}
}

在 d:\Test 里面有一个文件夹。一旦我重命名它就没有任何反应。我没有得到任何事件。

有什么想法吗?

谢谢

阿米特

最佳答案

您的代码没问题,但您缺少通知程序

 watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;

还有

// Add event handlers.
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.Created += new FileSystemEventHandler(OnChanged);
watcher.Deleted += new FileSystemEventHandler(OnChanged);
watcher.Renamed += new RenamedEventHandler(OnRenamed);

在这里查看完整的代码示例
https://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.renamed(v=vs.110).aspx

关于c# - 使用 FileSystemWatcher 检测文件夹重命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51153751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com