C# 把文件和文件夹 放到回收站 (出现Unknown err (0x402) 无法删除 文件:无法读取源文件或磁盘 解决)

来源:互联网 发布:php服务器设置session 编辑:程序博客网 时间:2024/05/01 06:40


C#   先引用 空间  Microsoft.VisualBasic


using System;using Microsoft.VisualBasic.FileIO;namespace leaver{class Program{   static void Main(string[] args){  Console.WriteLine("删除文件到回收站");string filepath = "leaver.txt";FileSystem.DeleteFile(filepath, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin);Console.WriteLine("删除文件完成");//keleyi.com  Console.WriteLine("删除文件夹到回收站");string dirpath = "leaver";FileSystem.DeleteDirectory(dirpath, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin);Console.WriteLine("删除文件夹完成");}}} 


可能出现问题



Microsoft.VisualBasic.FileIO.FileSystem.DeleteDirectory(fileFolder, UIOption.AllDialogs, RecycleOption.SendToRecycleBin, UICancelOption.DoNothing);

win7x64 win7x86 win8x64均正常。

xpx86上使用它会顺次提示

1. “无法删除 文件:无法读取源文件或磁盘”

2. Unknown err (0x402)  * error的含义参看:http://msdn.microsoft.com/zh-cn/subscriptions/bb762164

未验证xpx64上的情况。

 

解决:

1. 如果使用Microsoft.VisualBasic.FileIO.FileSystem.DeleteDirectory删除回收站,要去掉路径最后的反斜杠.

2.如果是DllImport了SHFileOperatioin,除了保证路径的最后不能有反斜杠,结束的部分还要多加一个'\0',据说是这个奇怪的字符数组需要由超过一个的'\0'作为结束。




0 0
原创粉丝点击