none
c# File类和Directory类的delete方法删除多个文件和文件夹和windows系统自带的SHFileOperation这个api来删除多个文件和文件夹到回收站或彻底删除,哪个综合看比较好?

    问题

  • c# 调用File和Directory的delete删除文件和文件夹或调用windows系统自带的删除到回收站的API—SHFileOperation,哪个综合看比较好?

    假设我认为最极端的情况,删除很多文件夹和文件,被删除的文件有超过10g的单个文件,一个文件夹文件数量超过1000。遍历被删除的文件还有只读文件,共享文件夹,还有被设置系统权限不可删除的文件。执行后还会对要被删除的文件地址还要执行其他操作。

    上面所设想的情况用File和Directory这两个静态类的delete好还是用SHFileOperation这个api带的删除好?









    2016年12月20日 3:48

答案

  • Hi 轮回的齿轮,

    C#语言是基于.NET framework。最终会调用CLR去删除文件,删除文件也会调用windows内核。

    windows 的API就会直接调用到windows内核,会省去中间CLR这一层。

    我个人认为windows 的API可能会快一点。

    Best Regards,

    Hart


    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2016年12月20日 9:26
    版主

全部回复

  • 应该是c#自带的,

    please verify my account

    2016年12月20日 4:59
  • Hi 轮回的齿轮,

    C#语言是基于.NET framework。最终会调用CLR去删除文件,删除文件也会调用windows内核。

    windows 的API就会直接调用到windows内核,会省去中间CLR这一层。

    我个人认为windows 的API可能会快一点。

    Best Regards,

    Hart


    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2016年12月20日 9:26
    版主