如何读取非共享文件
我正在制作一个数据备份程序。我需要将文件从一个文件夹复制到另一个文件夹,而某些文件仍在由正在运行的进程使用。当正在运行的进程共享文件访问权限时就可以了。但如果文件不共享,我会得到例外。 (FileShare.None)
我想知道是否有任何方法可以在 C# 中读取非共享文件。
谢谢,
I am making a data backup program. I need to copy files from one folder to another, while some files are still being used by a running process. It's OK when the running process shares file access. But I will get exception if files are not shared. (FileShare.None)
I am wondering if there is any way to read a non-shared file in C#.
Thanks,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
C# 在底层使用操作系统提供的文件访问操作,包括其文件共享行为。所以恐怕 C# 无法超越这一点。
C# under the hood uses the file access operations your operating system provides, including its file sharing behavior. So I'm afraid C# cannot go beyond this.
如果您使用的是 Vista 或更高版本,有一个技巧。您可以使用卷影复制功能。然而,开始使用 C# 工作会很乏味,我所能提供的帮助只是参考。但是,如果您想要管理解决方案而不是开发解决方案,则可以使用 Windows 备份按计划复制文件。
链接:
There is a technique if you are using Vista or later. You can use the Volume Shadow Copy feature. However, getting to work in C# will be tedious, and all that I can provide for help are references. However, if you wanted to administrate a solution instead of developing one, you could use Windows Backup to copy the files on a schedule.
Links: