薛定谔不养猫 2024-03-12 16:22 采纳率: 30.8%
浏览 91

C# 删除目录或者文件到回收站

请问C#如何实现 删除指定路径下的目录或者文件到回收站?有哪些比较好的方法?

  • 写回答

4条回答 默认 最新

  • 关注

    薛定谔不养猫 下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    要实现删除指定路径下的目录或文件到回收站,可以使用以下方法:

    1. 使用FileSystem.Delete方法:此方法可以删除文件或目录,并将其移动到回收站。可以使用FileAttributes枚举中的FileAttributes.RecycleBin属性来指示删除操作将文件移动到回收站。示例代码如下:
    using System.IO;
    
    string path = "C:\\path\\to\\fileOrDirectory";
    
    // 检查指定路径是文件还是目录
    if (File.Exists(path))
    {
        // 删除文件
        FileSystem.DeleteFile(path, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin);
    }
    else if (Directory.Exists(path))
    {
        // 删除目录
        FileSystem.DeleteDirectory(path, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin);
    }
    

    注意: 需要添加Microsoft.VisualBasic命名空间的引用。

    1. 使用Shell32 COM组件:通过使用Shell32 COM组件,可以实现将指定路径下的文件或目录移动到回收站。首先需要添加对Shell32 COM组件的引用。然后使用以下代码执行删除操作:
    string path = "C:\\path\\to\\fileOrDirectory";
    
    // 创建Shell对象
    dynamic shell = Activator.CreateInstance(Type.GetTypeFromProgID("Shell.Application"));
    
    // 获取指定路径的文件或目录
    dynamic directory = shell.NameSpace(Path.GetDirectoryName(path));
    dynamic item = directory.ParseName(Path.GetFileName(path));
    
    // 将文件或目录移动到回收站
    item.InvokeVerb("Delete");
    
    1. 使用第三方库:还可以使用第三方库来实现将文件或目录移动到回收站。其中一个比较好的库是Microsoft.VisualBasic.FileIO.FileSystem,它提供了类似于FileSystem的删除方法。示例代码如下:
    using Microsoft.VisualBasic.FileIO;
    
    string path = "C:\\path\\to\\fileOrDirectory";
    
    // 检查指定路径是文件还是目录
    if (File.Exists(path))
    {
        // 删除文件
        FileSystem.DeleteFile(path, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin);
    }
    else if (Directory.Exists(path))
    {
        // 删除目录
        FileSystem.DeleteDirectory(path, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin);
    }
    

    以上方法可以实现将指定路径下的文件或目录移动到回收站。使用其中任何一种方法都可以根据需要执行删除操作。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月12日

悬赏问题

  • ¥100 有偿,谁有移远的EC200S固件和最新的Qflsh工具。
  • ¥15 找一个QT页面+目标识别(行人检测)的开源项目
  • ¥15 有没有整苹果智能分拣线上图像数据
  • ¥20 有没有人会这个东西的
  • ¥15 cfx考虑调整“enforce system memory limit”参数的设置
  • ¥30 航迹分离,航迹增强,误差分析
  • ¥15 Chrome Manifest扩展引用Ajax-hook库拦截请求失败
  • ¥15 用Ros中的Topic通讯方式控制小乌龟的速度,走矩形;编写订阅器代码
  • ¥15 LLM accuracy检测
  • ¥15 pycharm添加远程解释器报错