0

我的 .NET 应用程序更新位于域内共享文件夹中的某个 .xls 文件。使用 VB.NET,我如何检查该文件是否被其他用户使用并取消共享/关闭它,以便我的代码可以正确更新文件?注意:.exe 文件(我的应用程序)将在共享文件夹所在的服务器中执行。

4

1 回答 1

2

Windows 和 NTFS 旨在防止这种情况。除非你:

  • 获取打开 .xls 文件的 Excel 应用程序以将其关闭
  • 假设 Excel 文件由客户端 PC 打开,则关闭服务器的网络连接——这是一个非常不受欢迎的步骤
  • 发现正在运行 Excel.exe 实例的 PC,并使用 WindowsTaskkill命令行命令杀死机器上的所有 Excel.exe 实例(因为您不一定知道打开了哪个实例)——这是另一个不受欢迎的步骤
  • 看看这个答案,但这使用了第三方实用程序,并没有解释这些实用程序如何做他们所做的事情,尽管你可能能够做到Process.Start

您只是无法让 Windows/NTFS 释放文件锁定。

我不确定是否可以使用 xls(而不是 xls_)的一种可能替代方法是使文件shared,尽管这有一些限制。

于 2013-10-02T23:05:45.027 回答