8

この 2 つのクラスとこれらの特定のメソッド FileIO.FileSystem.CopyFile() と System.IO.File.Copy() の違いについていくつか質問があります。

最も単純なレベルでは、sourceFile、destinationFile、および bool を true に設定して上書きすると、どちらも同じことを行います。例えば

FileIO.FileSystem.CopyFile(source, destination, True) 
System.IO.File.Copy(source, destination, True)

私の2つの質問は

  1. MSDN サイトで何も見つからない (またはポイントを逃した可能性がある) ため、オーバーロードが表示されている 2 の違いは何ですか。
  2. MSDN のドキュメントに記載されていない場合、どのようにして違いを知ることができますか?
4

4 に答える 4

8

リフレクター ショーのMicrosoft.VisualBasic.dllをざっと見てみると、いくつかのサニティ チェック (ファイル、ディレクトリが存在するなど) を実行し、必要に応じて宛先ディレクトリを作成した後、にFileIO.FileSystem.Copy引き渡されます。File.Copy

于 2013-01-08T09:53:12.893 に答える
3

いくつかのチェックの後、VisualBasic バージョンは System.IO.File.Copy を呼び出し、dotPeek を使用して、dotPeek が .NET 逆コンパイラであることがわかりました。

于 2013-01-08T09:53:23.653 に答える
1

私が見ることができる唯一の違いは、それらが別の例外リストを生成する可能性があることです-そして、MSDNのドキュメントを読んで、残念ながらそれを発見しました:o)

于 2013-01-08T09:47:16.167 に答える
0

私自身の調査の結果、文書化されていないことをしているようです。

FileIO.FileSystem.CopyFile(source, destination, true)存在しない場合はフォルダーを作成しますが、 asは作成System.IO.File.Copy(source, desintation, true)せず、例外をスローします。

また、参照を使用するとメモリに残っているように見えるFileIO.FileSystem.CopyFile(source, destination, true)ため、新しいフォルダーまたはファイルを削除しようとすると、例外がスローされ、「... 別のプロセスで既に使用されています」。

于 2013-01-08T09:54:54.330 に答える