C#中的String Split和FileSystemEventArgs参数用法

时间:2012-03-30 15:20:13

标签: c#

在某些情况下,我需要在我的应用程序中调用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

3 个答案:

答案 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,你会发现一些有用的方法。