我想知道如何制作出类似的东西。从Java 1.7开始我可以使用WatchService
但是如何在C#中做到这一点?我想让这个方法阻塞,而不是通常的事件,所以它会一直等到新文件出现。
while(isANewFileInDirectory(path)){
doSomeCode();
}
编辑:
FileSystemWatcher watcher = new FileSystemWatcher(".\\Screenshots");
watcher.Created += watcher_Created;
void watcher_Created(object sender, FileSystemEventArgs e) {
System.Diagnostics.Debug.WriteLine("fasuigfasuigf423432FSDFSAasuigf");
sendResponse(e.FullPath);
}
答案 0 :(得分:3)
是否必须阻止?你可以使用Filewatcher ...... http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher(v=vs.110).aspx
编辑:这是一个例子:
namespace FileWatchTest
{
class Program
{
static void Main(string[] args)
{
FileSystemWatcher watcher = new FileSystemWatcher(@"c:\temp");
watcher.EnableRaisingEvents = true;
watcher.Created += (obj, arg) => Console.WriteLine("File {0} created", arg.Name);
watcher.Deleted += (obj, arg) => Console.WriteLine("File {0} deleted", arg.Name);
watcher.Changed += (obj, arg) => Console.WriteLine("File {0} changed", arg.Name);
Console.ReadLine();
}
}
}
将其粘贴到控制台应用程序中,您应该看到更新(显然 - 更改您要观看的文件夹的路径...)
答案 1 :(得分:1)
查看FileSystemWatcher类。 MSDN有详细信息和示例代码。 here