【发布时间】:2012-10-29 18:58:02
【问题描述】:
我正在编写代码,使用hashCompute 方法对给定目录中的相同文件进行分组。
我已经完成了大部分工作,但我似乎无法对我的文件进行分组。我希望将具有相同哈希值的文件组合在一起。
这是我的代码示例:
public static void myhashedfiles()
{
string directory;
Console.WriteLine("please enter a folder name:");
directory = (Console.ReadLine());
if (directory.Length < 1)
{
Console.WriteLine("enter a directory or folder name!");
return;
}
DirectoryInfo dir = new DirectoryInfo(directory);
try
{
FileInfo[] files = dir.GetFiles("*.*", System.IO.SearchOption.AllDirectories);
HashAlgorithm hash = HashAlgorithm.Create();
byte[] hashValue;
foreach (FileInfo fInfo in files)
{
FileStream fileStream = fInfo.Open(FileMode.Open);
fileStream.Position = 0;
hashValue = hash.ComputeHash(fileStream);
PrintByteArray(hashValue);
Console.WriteLine(fInfo.Name);
fileStream.Close();
}
}
catch (DirectoryNotFoundException)
{
Console.WriteLine("Error: The directory specified could not be found.");
}
catch (IOException)
{
Console.WriteLine("Error: A file in the directory could not be accessed.");
}
}
【问题讨论】:
-
我想我可以使用 linq..但是请我在哪里插入代码以及如何..我对 linq 很陌生..或者还有其他简单的方法
-
“分组”文件是什么意思?你想得到什么输出?
-
我想按组输出 eqaul 文件...例如,如果我的文件夹中有 10 个文件并且有 2 组相同的文件..我希望输出这些相同的文件,然后输出一个空格,然后下一组相等的文件
标签: c# file directory equals linq-group