使用Directory.GetDirectories和Directory.EnumerateDirectory时发生永久

本文关键字:Directory EnumerateDirectory GetDirectories 使用 | 更新日期: 2023-09-27 17:58:23

我遇到了一个非常奇怪的情况,运行一个非常简单的应用程序会导致内存永久丢失(直到系统重新启动)。下面是代码:

List<string> list = Directory.EnumerateDirectories("G:''Video", "*", SearchOption.AllDirectories).ToList();
List<string> list2 = Directory.EnumerateDirectories("H:''Video", "*", SearchOption.AllDirectories).ToList();

这是应用程序中的所有代码。在这些视频文件夹中,有更多的文件夹(大约30个),其中包含数百个.avi视频剪辑。当这个应用程序运行时,内存会每30秒左右逐渐减少大约10 MB(所以如果我让它运行几个小时,就会丢失一GB或更多的内存。)尽管在任务管理器中,内存不会显示在这个应用程序下。它实际上没有显示在哪里。停止此应用程序时,内存不会恢复。这就像电脑上的某个东西不知怎么地看到上面的代码被调用,然后将上面搜索的文件加载到内存中。有什么想法可以做这件事吗?没有其他应用程序正在运行(在任务管理器中),机器上也没有安装visual studio。

使用Directory.GetDirectories和Directory.EnumerateDirectory时发生永久

你会试试这个吗

List<string> list = = new List<string>();
foreach(var v in  Directory.EnumerateDirectories("G:''Video", "*", SearchOption.AllDirectories)) list.add(v.ToString());