在某些情况下,我需要在我的应用程序中调用FileWatcher onDelete函数。 以下代码按预期工作。如果有更好的方法,请告诉我。
string path = @"C:\File\Test";
string part1, part2;
part1 = path.Substring(0, 3); //C:\\
part2 = path.Substring(3 // File\Test
var fseArgs = new FileSystemEventArgs(WatcherChangeTypes.Deleted, part1, part2);
onDeleted(path,fseArgs); //FileWacther Delete method
答案 0 :(得分:0)
据推测onDeleted
是你自己的方法。那是做什么的?我希望另一个与FileSystemEventArgs
无关的方法更简单,直接在你的“方案”中调用它,然后制作你的FileSystemEventWatcher
处理程序也称它为。当你真的不需要时,避免与FileSystemEventWatcher
联系。
此外,您不应该像这样使用Substring
来执行文件系统路径操作 - 它最终会非常脆弱。我强烈建议您使用Path
中的方法。
另一方面,你还没有真正告诉我们你的背景......
答案 1 :(得分:0)
您要实现的目标是在目录“C:\ File \ Test”被删除时执行一些Foo逻辑。为什么不将该逻辑提取到Foo()方法,并在两个地方调用它 - 在OnDeleted事件处理程序中,以及在您尝试模拟Deleted事件的位置?
private void OnDeleted(object sender, FileSystemEventArgs e)
{
if (e.FullPath == @"C:\File\Test")
Foo();
}
private void Foo()
{
// Do something here
}
而不是所有代码,只需致电Foo();
答案 2 :(得分:0)
检查System.IO.Path
,你会发现一些有用的方法。