如何解决C#将目录中每个文件的所有MD5以及所有嵌套/子目录/子目录中的文件保存为文本文件
我正在尝试创建给定目录(根目录为var CloudmersiveConvertApiClient = require('cloudmersive-convert-api-client');
var defaultClient = CloudmersiveConvertApiClient.ApiClient.instance;
// Configure API key authorization: Apikey
var Apikey = defaultClient.authentications['Apikey'];
Apikey.apiKey = 'YOUR API KEY';
var apiInstance = new CloudmersiveConvertApiClient.ConvertWebApi();
var input = new CloudmersiveConvertApiClient.HtmlToPdfRequest(); // HtmlToPdfRequest | HTML to PDF request parameters
input.Html = "<b>Hello,world!</b>";
var callback = function(error,data,response) {
if (error) {
console.error(error);
} else {
console.log('API called successfully. Returned data: ' + data);
}
};
apiInstance.convertWebHtmlToPdf(input,callback);
)中所有文件以及包含1)所有文件和路径的子目录或子目录中的每个文件的日志。和2)每个文件的MD5。
处理文件路径的代码的第一部分MyGlobals.finalPathForWork
正常工作。问题是每个文件的MD5都一样。我认为MyMethod5
中的代码应该生成MD5,但是我不知道如何为每个文件返回它获得的值/字符串,以及如何将其写入到像{{1} }。
如何使用在CalculateMD5
中计算出的MD5并将其写入MyMethod5
中,就像在CalculateMD5
中一样?
log.txt
解决方法
我最终还是这样做了,但是如果您发现有改进的余地,请告诉我:
public static void MyMethod5()
{
foreach (string file in Directory.EnumerateFiles(MyGlobals.finalPathForWork,"*.*",SearchOption.AllDirectories))
{
//Console.WriteLine(file);
File.AppendAllText(MyGlobals.finalPathForWork + @"\\Log.txt",file + Environment.NewLine);
CalculateMD5(file);
}
}
public static void CalculateMD5(string filename)
{
DateTime current = DateTime.Now;
string file = filename;
string output;
using (var md5 = MD5.Create())
{
using (var stream = File.OpenRead(file))
{
byte[] checksum = md5.ComputeHash(stream);
output = BitConverter.ToString(checksum).Replace("-",String.Empty).ToLower();
File.AppendAllText(MyGlobals.finalPathForWork + @"\\Log.txt","Hash:" + output + Environment.NewLine);
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。