如何在Console应用程序中将文件移动到回收站?

时间:2016-08-02 08:19:16

标签: c#

我已经能够使用以下代码永久删除文件:

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上下文,而我的应用程序是基于控制台的。

1 个答案:

答案 0 :(得分:0)

如果您引用了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上下文的担忧,该功能将仅“显示错误对话框并隐藏进度对话框”。如果您想进一步阅读,我在Microsoft's docs上发现了这一点。