2

私はファイルを持っています:

string myFile = @"C:\Users\Nick\Desktop\myFile.txt";

そして、このファイルのコピーが別のディレクトリにあるかどうかを確認したいと思います。

string DestinationDir = @"C:\Users\Nick\Desktop\MyDir"

どうすればこれを達成できますか?

4

2 に答える 2

3

私が知っている最も簡単な方法は、 System.IO名前空間でPathクラスとFileクラスを利用する方法です。

Path.Combineメソッドを使用して、宛先ディレクトリのパスを検索するファイルの名前と組み合わせることができます(Path.GetFileNameメソッドによって返されます)。

string dest_file = Path.Combine(dest_dir, Path.GetFileName(source_file));

この時点で、 File.Existsメソッドdest_fileで存在するかどうかを簡単に確認できます。

if (File.Exists(dest_file))
{
   // You can get file properties using the FileInfo class
   FileInfo info_dest = new FileInfo(dest_file);
   FileInfo info_source = new FileInfo(source_file);

   // And to use the File.OpenRead method to create the FileStream
   // that allows you to compare the two files
   FileStream stream_dest = info_dest.OpenRead();
   FileStream stream_source = info_source.OpenRead();

   // Compare file streams here ...
}

ここでは、FileStreamを使用して2つのファイルを比較する方法を説明する記事を紹介します。

ファイルが宛先ディレクトリに存在するかどうかを確認する別の方法もあります。Directoryクラス、特にメソッドDirectory.GetFilesを確認してください。

foreach (string dest_file in Directory.GetFiles(dest_dir))
{
    // Compare dest_file name with source_file name
    // and so on...
}
于 2012-05-29T12:49:40.683 に答える
1

からファイル名を抽出し、それmyFileに使用してDestinationDir +ファイル名の新しいパスを作成し、 File.ExistsPath.Combineを使用してファイルが存在するかどうかを確認します。

2つのファイルを比較するには、次のことを試してください。

public static IEnumerable<string> ReadLines(string path)
public static IEnumerable<string> ReadLines(string path, Encoding encoding)
bool same = File.ReadLines(path1).SequenceEqual(File.ReadLines(path2));

このスレッドを確認してください:.NETを使用して2つのファイルを高速に比較するにはどうすればよいですか?

于 2012-05-29T12:51:20.897 に答える