我正在编写的应用程序需要能够复制锁定的文件。我们尝试使用卷影复制,虽然它成功地复制了文件,但拥有文件锁的应用程序崩溃了,因为在我们复制文件时它无法获取锁。
我只能相信,我唯一的选择是绕过操作系统,直接从磁盘读取。问题是,如果我直接读取磁盘,我不能确定文件的完整性,如果它在写入过程中,文件将处于损坏状态。
经过几个小时的搜索,我找到了一个直接从磁盘复制文件的实用程序,并在复制时使用文件系统驱动程序缓存写入,以便它可以确保文件处于完整状态。然而,该实用程序非常昂贵,对于我可能需要使用的许可证,使用100k+。
有没有人对如何实现我正在尝试的目标有什么想法?
我们计划将系统限制为仅NTFS卷。
发布于 2011-08-03 22:46:02
我最终使用了一个由Napalm编写的名为DirectCopy的C程序。它运行得相当好。
http://www.rohitab.com/discuss/topic/24252-ntfs-directcopy-method-from-napalm/
发布于 2011-06-09 10:24:27
您能否获取应用程序的进程ID,并在执行复制时挂起它的线程?类似这样的http://www.codeproject.com/KB/threads/pausep.aspx
发布于 2011-06-15 23:34:39
This对“分层驱动程序”的描述可能会有用。不过我对此一无所知。
另外,如果文件被锁定,那么你能不能只是“看”它,等待它被解锁,然后快速复制它?
https://stackoverflow.com/questions/6257702
复制相似问题