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 に答える