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'作为结束。