背景: Windowsアプリケーションでは、SQLCEデータベースを使用します。一部のユーザーは、このデータベースをネットワーク上に保存して、ユーザー間で簡単に共有できるようにします(同時ではありません)。データベースがネットワークドライブ上で開かれているときは、パフォーマンスを向上させるためにデータベースをローカルフォルダにコピーし、アプリケーションが終了するとデータベースを元に戻します。その理由は、一部のネットワークではパフォーマンスが単に受け入れられないということです(ユーザーがデータベースを配置しないでください)。ファイルがネットワーク上にあるかどうかを検出するにはどうすればよいですか?
現在のところ、ネットワークファイルの検出にはDriveInfoとDriveType == DriveType.Networkを使用していますが、これはドライブにマップされたローカルフォルダや他の同様のシナリオ(ユーザーから報告されたもの)をキャッチします。ファイルがネットワーク上にあるかどうか、あるいはどんな種類の接続が遅いのかを実際に検出するための良い方法はありますか(後で大まかなファイルの測定読み込みが必要になるかもしれません。最初の部分は解決します)? .Netはこれを直接サポートしているとは思えませんが、P/Invokeはまあまあです。
ありがとうございます。
注を参照してください。 – Piskvor
[link] [1]をチェックしてみてください。 [1]:http://stackoverflow.com/questions/458363/determining-if-file-exists-using-c-sharp-and-resolving-unc-path – TambaySaPinas
さて、ネットワーク接続は高速になる可能性がありますがそれは通常そうではなく、ユーザーが報告しているものではありません。ファイルが「実際の」ネットワーク上に存在するかどうかを判断するためのより良い方法が見つかった場合、可能と思われるユーザーの大部分に応えることができれば幸いです。 – rebel