当前位置:  开发笔记 > 编程语言 > 正文

如何以编程方式复制在Windows下锁定的文件或文件夹?

如何解决《如何以编程方式复制在Windows下锁定的文件或文件夹?》经验,为你挑选了2个好方法。

什么是API调用来复制当前锁定的文件.我希望能够使用.Net,但Win32调用也没问题.

请随意在Unix或任何其他操作系统上使用相同的功能.



1> mdb..:

您可以使用VSS(卷影复制服务,而不是Visual SourceSafe)API来实现此目的.虽然功能强大,但这并不是一个易于使用的API:在VSS下处理备份概述可以让您了解所涉及的内容.

虽然它是一个相对较新的API,但对VSS的.NET支持几乎(并且不可原谅地)不存在.您无法通过Interop调用大多数API,并且Framework文件函数将无法与VSS用于公开快照文件的内核命名空间一起使用.作为奖励,有可怕的32/64位和XP-vs-Vista问题,部署也令人兴奋(微软的负责团队应该感到非常自豪!)

无论如何,AlphaVSS项目打算为.NET带来完整的VSS功能,看起来非常有前景,尽管它还处于测试前阶段.它可能只是为你做的,它是开源的(Managed C++).

有关如何使用Win32执行操作的一个很好的示例,请参阅HoboCopy.该实用程序本身非常有用,并且SourceForge项目页面也提供了完整的C++源代码.



2> CesarB..:

几乎与我对另一个问题的回答相同:

如果您使用的是Win32,那么正式的方法是将其标记为在重新启动时移动,并要求用户重新启动.为了纪念在重新启动要移动的文件,请使用MoveFileExMOVEFILE_DELAY_UNTIL_REBOOT标志.

它是相同的功能,只是这次你没有传递NULL作为目的地.

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有