次のコードを使用して、リモートファイルをローカルにコピーしています。大きなファイルをコピーするときに、操作の失敗をどのように検出しますか。
system.io例外を処理する以外に、障害を検出するためのより良いアプローチはありますか?
File.Copy(remoteSrcFile, dest);
これは、ファイルサイズがギガバイトの範囲にある大きなファイルをコピーするためにフレームワークによって提供される最良の方法ですか?
次のコードを使用して、リモートファイルをローカルにコピーしています。大きなファイルをコピーするときに、操作の失敗をどのように検出しますか。
system.io例外を処理する以外に、障害を検出するためのより良いアプローチはありますか?
File.Copy(remoteSrcFile, dest);
これは、ファイルサイズがギガバイトの範囲にある大きなファイルをコピーするためにフレームワークによって提供される最良の方法ですか?
system.io例外を処理する以外に、障害を検出するためのより良いアプローチはありますか?
無効なファイル名など、考えられる多くのエラーを事前に確認できます。File.Copyが失敗すると、例外がスローされます。他のエラーインジケータはありません。
これは、ファイルサイズがギガバイトの範囲にある大きなファイルをコピーするためにフレームワークによって提供される最良の方法ですか?
それはあなたが望む他の機能に依存します。たとえば、進行状況を表示する場合、File.CopyはFileCopy APIをラップするだけなので、役に立ちません。ただし、Windows API FileCopyExを呼び出すと、進行状況を確認できます。.NETでFileInfo.CopyTo()を使用してファイルコピーの進行状況を表示できますか?を参照してください。詳細については。
コピーの失敗は例外的な状況であると想定されているため、失敗は例外としてモデル化されます。
明示的に対応できる例外をキャッチするFile.Copy
には、呼び出しをtry
/でラップする必要があります。catch
File.Copy
と一緒にフレームワークに「含まれる」唯一のものですFileInfo.CopyTo
。ただし、さまざまな方法で使用できます。たぶん、それを呼び出すためにスレッドを生成します。また、基本IOを使用して、あるファイルから別のファイルにデータを読み取り、進行状況やキャンセルを改善することもできます。しかし、それはあなたが何を達成したいかによります。