我知道我可以使用Microsoft.VisualBasic.FileIO命名空间,如: FileSystem.DeleteFile(...)但只给我一个文件的选项。 我想一起删除许多文件。 (和复制一样…)
注意:即使在复制大文件的过程中,我也需要用户能够取消操作,而不仅仅是在文件之间。 我知道我可以做非托pipe代码( – copyFileEx ),但我正在寻找一种pipe理方式来做到这一点,无论它是否使用本机Windows对话框。
编辑:我已经被build议'包装'非托pipe代码和'手动'复制和删除(在下面的答案)。 是否有一个内置的方式(如VisualBasic命名空间的东西,但对于多个文件),我失踪了?
应用程序exception问题
如何列出静态链接的python版本中可用的所有openssl密码?
“IOError Permisson denied”在Windows上复制文件时
防止键盘input到达窗口
在Windows上开发iOS应用程序
与网关的Docker容器连接被拒绝
为什么用这种方式计算位图大小?
C ++exception处理程序问题
在复制方面,您需要手动执行此操作,方法是将文件以块的形式复制,并且每次处理大块时都会检查用户是否设置了取消标志。
void copyStream(Stream in,Stream out) { var buf = new byte[512]; int bytesRead; while((bytesRead = in.Read(buf,buf.Length)) > 0) { out.Write(buf,bytesRead); if(cancelled) { // Do you cancel routine return; } } }
对于删除,你最好的选择是你一次处理一个文件,删除一个文件,并执行上面描述的相同类型的流程。
这样做的好处是,无论操作系统如何,它都能正常工作。 它将工作,不管文件的类型。 无论您正在执行什么线程,它都可以工作。
我知道迄今为止一个复制方法,你可以做这样的事情,并使用Microsoft.VisualBasic NameSpace不会伤害你的代码检查在这个链接文章
从Vista开始可用的IFileOperation shell界面。 本杂志文章中提供了此COM接口的托管类封装。
如果还需要在早期版本的Windows上运行,请回退您现有的代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。