2014-08-27 114 views
0

我试图编辑一个打开的excel文件(由共享网络中的另一个用户),以便对其进行一些更改并将其保存回来。但是,当我试图打开我得到以下错误文件:当Excel文件被其他用户打开时写入

Message=The process cannot access the file  
'Y:\COMMON\SharedFolders\Export.xlsx', because it is being used by another process. 
Source=mscorlib 
StackTrace: 
    à System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 
    à System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) 
    à System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) 
    à System.IO.File.InternalReadAllBytes(String path, Boolean checkHost) 
    à System.IO.File.ReadAllBytes(String path) 
    à OfficeOpenXml.ExcelPackage.ReadFile() 
    à OfficeOpenXml.ExcelPackage.ConstructNewFile(Stream stream, String password) 
    à OfficeOpenXml.ExcelPackage..ctor(FileInfo newFile) 

顺便说一句,我使用的EPPLUS库。

+0

那么你显然不能使用被另一个进程锁定的文件......你可能会尝试复制一个文件,对其进行更改并等待原始文件不再被锁定。 – walther 2014-08-27 14:36:18

+0

是否有可能杀死用户进程? – 2014-08-27 14:37:33

+0

理论上可以肯定的是,如果您有权访问他的机器并且拥有正确的权限,但我想这在网络上会有点棘手。 – walther 2014-08-27 14:39:23

回答

0

谷歌允许同时进行多个编辑...也许你应该尝试在那里移动那个文件,如果可能的话。

+0

这是一个机密文件 – 2014-08-27 14:43:37

+0

这些云驱动器解决方案具有控制安全性,像GDrive一样,只能与特定的人分享。 当然,你需要为安全起见,例如gmail,hotmail等等。 无论如何,我知道在企业内部可能很难实施。 祝你好运 – iTekExpert 2014-08-27 14:56:28

1

你不能。这就是说你可以看看一些“源代码安全”的解决方案(如svn,sharepoint或谷歌文档)。您还可以实施一些“穷人”源代码,以确保您自己的安全 - 即作为代理通过文件系统&的小型Web应用程序将允许您上载文件,列表文件夹,下载文件。

其他选项是将更新延迟到没有人会访问该文件的日期。

相关问题