そのため、ファイルの膨大なリストを調べ、不足しているファイルを WebDAV マップ ドライブを使用してリモートの場所にコピーする C# コンソール アプリがあります。
本質的に、私はカスタム クライアントを使用しておらず、Windows 組み込みクライアントを使用しています。
net use j: http://127.69.69.69 /user:testme pass /persistent:yes
すべて正常に動作しているようです (IIS 7.0 サーバーのファイル サイズ制限を増やしたなど)。例外として、OS から「遅延書き込みエラー」ポップアップが表示されることがあります。
私の問題は、私のアプリケーションがクライアントの File.Copy() メソッドで例外を保釈/スローしないことです-これをどのように検出できますか?
大したことではないと思いますが、なぜ例外がスローされないのか疑問に思っています。エラーをログに記録せずに次のファイルに移動するように見えます。私のスクリプトは、リモート ファイルのサイズが同じで、次のサイクルで部分的なファイルを置き換えることができるかどうかを確認します。
実際にコピーする非常に単純なコード:
Log("\n copying " + lf.FullName);
try
{
if (!Directory.Exists(Path.Combine(remotePath, localDir.Name)))
Directory.CreateDirectory(Path.Combine(remotePath, localDir.Name));
}
catch (Exception e)
{
Log("Cannot create remote directory " + Path.Combine(remotePath, localDir.Name) + " " + e.Message , "error");
}
try
{
File.Copy(lf.FullName, Path.Combine(new string[] { remotePath, localDir.Name, lf.Name }), true);
}
catch (Exception e)
{
Log("Cannot copy file to " + Path.Combine(new string[] { remotePath, localDir.Name, lf.Name }) + " " + e.Message, "error");
}