private void button4_Click(object sender, EventArgs e)
{
FileStream outputFileStream = new FileStream("log.txt", FileMode.Create, FileAccess.Write);
StreamWriter writer = new StreamWriter(outputFileStream);
// writing block
string originalPathFile = @"C:\Users\user\Downloads\CaptchaCollection\Small\";
string duplicatePath = @"C:\Users\user\Downloads\CaptchaCollection\Small\Duplicates\";
string movedOriginal = @"C:\Users\user\Downloads\CaptchaCollection\Small\Sorted\";
var files = Directory.GetFiles(originalPathFile)
.Select(nameWithExtension => Path.GetFileNameWithoutExtension(nameWithExtension))
.Where(name => { int number; return int.TryParse(name, out number); })
.Select(name => int.Parse(name))
.OrderBy(number => number).ToArray();
while (files.Length > 1)
{
string duplicateOfFolder = Directory.CreateDirectory(duplicatePath + files[0].ToString()).FullName;
for (int j = 1; j < files.Length; j++)
{
Bitmap im1 = new Bitmap(originalPathFile + files[0].ToString() + ".png");
Bitmap im2 = new Bitmap(originalPathFile + files[j].ToString() + ".png");
if (compare(im1, im2))
{
File.Move(originalPathFile + files[j].ToString() + ".png", duplicateOfFolder + files[j].ToString() + ".png");
writer.WriteLine(files[j].ToString() + ".png" + " is a duplicate of " + files[0].ToString() + ".png \n");
}
}
File.Move(originalPathFile + files[0].ToString() + ".png", movedOriginal + files[0].ToString() + ".png");
writer.WriteLine(files[0].ToString() + ".png " + "has had its duplicates removed.");
files = Directory.GetFiles(originalPathFile)
.Select(nameWithExtension => Path.GetFileNameWithoutExtension(nameWithExtension))
.Where(name => { int number; return int.TryParse(name, out number); })
.Select(name => int.Parse(name))
.OrderBy(number => number).ToArray();
}
writer.Close();
outputFileStream.Close();
}
したがって、このボタンは基本的に画像の重複ファイルを視覚的に移動します。このコードは、以前に尋ねた質問の 1 つから取得しました。ここで、新しいフォルダーを使用して、特定の画像の複製を配置したいと考えています。
例: 1.png には 5 つの視覚的な重複があります (65.png、87.png、100.png、103.png、156.png)。ディレクトリに配置するだけでなく、すべての重複をこのディレクトリに移動したいDuplicates
:C:\Users\user\Downloads\CaptchaCollection\Small\Duplicates\1\
代わりに、いくつかの画像の名前を変更して再生成しているようです。何が起こっているのかを実際に見ることができないため、これを言葉で説明することはできません。発生していないのは、これらのファイルが重複ファイル編成のディレクトリに移動されていないことです。
フォルダーは作成されますが、代わりに適切なフォルダーに配置されません。