好的,有两种方法可以将文件发送到.net中的Recyle Bin,无论是使用Microsoft.VisualBasic.FileIO.FileSystem.DeleteFile还是使用SHFileOperation.两者都运行良好,但如果文件无法放入回收站内,它们会永久删除文件.如果文件太大或只是不删除它,它是否可能以某种方式抛出异常或返回布尔值?(不想要默认确认对话框)
我得到的一种方法是获取卷允许的最大回收站大小然后减去使用的大小并检查文件是否将发送到RB或永久删除,但如果删除许多文件并反复检查它可能会变坏.
还有什么我可以尝试的吗?
我需要在.net 2003中将文件移动到回收站
我从refrence添加了microsft.visualbasic.runtime dll,但我无法获取filesystem.deletedirectory,那么该怎么办..任何人都可以帮助我吗?
我正在使用Python,但我认为C#中存在同样的问题.
我希望能够支持扩展路径(len> 260的路径,表示为//?/ c:/ blah/blah).看起来将文件移动到回收站的标准方法是通过SHFileOperationW或SHFileOperation.
在python中,有用的xplatform库move2trash使用SHFileOperationW.关于C#的一些文章说使用相同的东西.
SHFileOperationW的问题在于它不支持扩展路径.这是SH工具的一般限制.
有没有人有任何处理回收站和扩展路径的技巧?
我正在创建一个程序来在驱动器上运行文件I/O压力,当它完成后,我想删除文件,但不想将它们放在回收站中.这是我现在的代码:
public static void DeleteDirectory(string target_dir)
{
//Delete the files and folders created during stress.
string[] files = Directory.GetFiles(target_dir);
string[] dirs = Directory.GetDirectories(target_dir);
foreach (string file in files)
{
File.SetAttributes(file, FileAttributes.Normal);
File.Delete(file);
}
foreach (string dir in dirs)
{
DeleteDirectory(dir);
}
Thread.Sleep(30);
Directory.Delete(target_dir, true);
}
Run Code Online (Sandbox Code Playgroud)
但是这段代码只是将文件移动到回收站.我不想添加代码来自动清空回收站,因为那里可能有文件我不想删除(文件可能属于其他人).
注意:从目前为止的回复来看,似乎人们可能会误解我在这里要做的事情.当我的程序删除文件时,它会将它们发送到回收站.我不希望发生这种情况,我想立即删除文件.我没有看到任何方法告诉系统删除文件而不将它们发送到回收站.我永远不需要恢复文件.它是默认发送到回收站,但我没有看到任何改变它的方法.如果可能的话,请编辑我发布的代码,让它立即删除文件.我是新手C#用户的开始.
有没有办法恢复已通过该File.Delete()方法以编程方式删除的文件?
程序删除了一些我需要恢复的文件,它们不会出现在回收站中.
我通常使用C#开发,并且非常习惯使用System.IO.我最近跑过FileIO库,发现一些优点(例如将项目发送到回收站)非常好.特别是在我目前正在进行的计划中.我的问题是,System.IO是否执行VisualBasic.FileIO?
我正在编写的程序将把TB的信息复制到服务器塔上.由于我使用的库,我想确保我不会丢失任何时间.
先感谢您!!!
在 .NET 中,我正在运行代码Directory.Delete(tempdir, true);以永久删除目录和所有包含的文件。然而,这种删除方法只是将文件发送到回收站,而不是永久删除它们。有没有办法强制Directory.Delete永久删除目录和包含的文件,而不仅仅是移动到回收站?我找不到任何其他方法重载来执行此操作。
编辑:正如尼尔指出的那样,这不是实际发生的事情。Directory.Delete确实是永久删除目录和包含的文件,而不是将它们发送到回收站。抱歉有任何混淆