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

我可以简单地"读取"正在使用的文件吗?

如何解决《我可以简单地"读取"正在使用的文件吗?》经验,为你挑选了1个好方法。

我试图使用StreamReader读取文件,但它总是被另一个进程使用,所以我收到此错误:

该进程无法访问文件'\ arfjwknasgmed17\C $\FLAG CONDITION\CP-ARFJN-FLAG.XLS',因为它正由另一个进程使用.

有没有办法可以在不复制的情况下阅读本文?或者这是我唯一的选择?



1> Brian R. Bon..:

仅当首先打开文件的程序指定了对该文件的读取共享权限时,才能读取该文件.

如果文件确实没有读取共享权限,则您将无法首先复制它.

如果您指定的共享权限与已打开文件的程序的共享权限冲突,则可能无法访问文件.例如,如果已打开程序的程序未授予写访问权限,则无法授予写访问权限.

如果首先打开文件的程序支持卷影复制(VSS),您还可以使用VSS来访问该文件.

有商业软件驱动程序允许您访问这些文件,即使它们正在使用中.您以前可以通过St-Bernards获得Open File Manager,也可以使用VisionWorks Solutions Inc.的文件访问管理器(FAM).这些驱动程序通常是OEM备份软件公司以包含在他们的产品中.

VSS的工作原理是告诉程序已经打开了另一个程序要从文件中读取的文件.然后,VSS会复制该文件,并允许您从该副本中读取.VSS不适用于遗留应用程序.

通过指定可以访问独占打开和锁定文件的应用程序的"允许列表",FAM透明地适用于旧程序和非旧程序.只允许此列表中的程序访问这些文件.打开文件时,它会进入缓存模式,这样您就可以获得文件的副本,就像文件的"备份/打开"一样.此时,最初打开文件的程序看到文件实际上是,并且允许列表中的第二个程序看到文件发生时"打开/备份"文件.这可确保文件的一致性.

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