gpt4 book ai didi

c# - 如何快速删除多个文件

转载 作者:行者123 更新时间:2023-12-03 19:50:39 24 4
gpt4 key购买 nike

我在 Windows Server 中有一个文件夹,其中包含子文件夹和 ≈50000 个文件。当我单击鼠标右键并选择删除(或 shift+delete)时 - 所有文件将在 10-20 秒内删除。
当我使用代码删除文件时 – 1500-4000 秒。
Delete large number of files – 不要为我工作。
我的代码:

string folderPath = @"C://myFolder";
DirectoryInfo folderInfo = new DirectoryInfo(folderPath);
folderInfo.Delete(true); // true - recursive, with sub-folders
如何更快地删除文件?

最佳答案

删除文件的一种更快的方法是使用 Windows 函数而不是 .NET 函数。

您需要先导入函数:

[DllImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool DeleteFile(string lpFileName);

然后你可以这样做:
string[] files = Directory.EnumerateFiles(path, "*". SearchOption.AllDirectories);

foreach (string file in files)
{
DeleteFile(file);
}

一旦文件被删除,这是使用托管 API 最慢的部分,您可以调用 Directory.DeleteFolder(path, true)删除空文件夹。

关于c# - 如何快速删除多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44699238/

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