如何在控制台应用程序中将文件移动到回收站
本文关键字:文件 移动 回收站 控制台 应用程序 | 更新日期: 2023-09-27 17:59:32
我已经能够用以下代码永久删除文件:
var DeleteFromDir = new DirectoryInfo(sFromPath);
var files = DeleteFromDir.GetFiles(".txt");
foreach(var file in files)
{
if(bDeletePermanently)
file.Delete();
else
; //Move to recycle bin
}
我试过以下内容:
添加对Microsoft.VisualBasic程序集的引用。所需的类在此库中找到。
使用将此using语句添加到文件顶部Microsoft.VisualBasic.FileIO;
使用FileSystem.DeleteFile删除文件,它可以选择是否指定回收站。
但这只适用于UI上下文,并且我的应用程序是基于控制台的。
如果您有对Microsoft.VisualBasic程序集的引用(如果您愿意,还有一个NuGet包),那么您应该能够使用下面的代码。
var DeleteFromDir = new DirectoryInfo(sFromPath);
var files = DeleteFromDir.GetFiles("*.txt");
foreach (var file in files)
{
if (bDeletePermanently)
{
file.Delete();
}
else
{
FileSystem.DeleteFile(file.FullName, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin);
}
}
为了回应您对UI上下文的担忧,该函数将只"显示错误对话框并隐藏进度对话框"。如果你想进一步阅读,我在微软的文档中找到了这个。