gpt4 book ai didi

c# - FileSystemWatcher - 识别已删除文件夹中的文件

转载 作者:行者123 更新时间:2023-11-30 15:29:56 25 4
gpt4 key购买 nike

我的 FileSystemWatcher 有另一个问题 ;)简单地说,我想做的是:

我想查看特定的文件夹,以便将文件的路径添加到一个列表(字符串)中并为每个新文件设置一个整数变量。

所以:

我创建了文件“Test.png”,它这样做了:

(List) categoryFilesList.Add(e.FullPath)
(Integer-variable) counter += 1

嗯,这很好用。

现在,如果再次删除文件,它应该从列表中删除路径并再次设置整型变量。 (-= 1).

这也很好用,但现在我遇到了一个问题,我找不到解决方案。我将 IncludeSubdirectories 设置为 true 以扫描子目录中的文件。添加时效果很好,但删除时却不行。

那是因为我没有将文件夹添加到列表中,只有文件。因此,如果我删除一个文件夹,我无法知道它包含什么内容以及它有多少文件,因为它已经不存在了。

但我想知道,其中有多少文件以及它们的路径是什么,以便再次从列表中删除它们,并再次将整数变量设置为已删除文件的数量。

我虽然想在更改时保存它,但我不知 Prop 体如何以及这是否是个好主意。有更好的解决方案吗?

如果有什么不清楚的地方,那么很抱歉,然后再问。我也接受 C#-answers,VB.NET 只是因为我的 friend 想要那个。

谢谢!

最佳答案

我对类似问题的解决方法如下:确保您的 FileSystemWatcher 配置为跟踪子文件夹。一旦你这样做了,你应该在任何时候删除一个文件夹或文件时得到一个 Delete 事件。在文件夹被删除的情况下,只需遍历您的集合并删除包含该文件夹路径的所有项目。

例如:

int numRemoved = categoryFilesList.RemoveAll(
delegate(String s)
{
return s.Contains(<DeletedDirectoryPath>);
}
);

这将删除列表中包含 .然后您可以使用 numRemoved 来维护您的文件数。或者,您可以简单地使用列表的计数,而不是通过列表上的 Count 属性维护您自己的数据副本。

此外,您应该确保处理重命名项目和目录的情况,以便您的文件名列表始终是最新的。

关于c# - FileSystemWatcher - 识别已删除文件夹中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22968699/

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