C# 类型为'的首次机会例外;System.ArgumentException';发生在mscorlib.dll中
我正在尝试为文件创建校验和。在调试文件内容时,文件内容显示为红色,但在“filestream”行中出现了“mscorlib.dll中发生了类型为“System.ArgumentException”的第一次意外异常”错误 您只需更正对C# 类型为'的首次机会例外;System.ArgumentException';发生在mscorlib.dll中,c#,C#,我正在尝试为文件创建校验和。在调试文件内容时,文件内容显示为红色,但在“filestream”行中出现了“mscorlib.dll中发生了类型为“System.ArgumentException”的第一次意外异常”错误 您只需更正对GetChecksum函数的调用 现在,您正在将checksum.txt的完整内容作为字符串传递给GetChecksum的m_fileinput参数。但是File.OpenRead需要的是文件路径,而不是文件的内容 你所要做的就是更新你的主函数,所以它看起来像下面的代
GetChecksum
函数的调用
现在,您正在将checksum.txt的完整内容作为字符串传递给GetChecksum
的m_fileinput参数。但是File.OpenRead
需要的是文件路径,而不是文件的内容
你所要做的就是更新你的主函数,所以它看起来像下面的代码
class Program
{
public static string GetChecksum(string m_fileinput)
{
string m_checksum;
using (FileStream stream = File.OpenRead(m_fileinput))
{
SHA256Managed sha = new SHA256Managed();
byte[] checksum = sha.ComputeHash(stream);
m_checksum =
BitConverter.ToString(checksum).Replace("-", String.Empty);
}
return m_checksum;
}
static void Main(string[] args)
{
string fileContent = File.ReadAllText("C://Users//wiproat3//Desktop//checksum.txt");
string checksum = GetChecksum(fileContent);
Console.WriteLine(checksum);
Console.ReadLine();
}
}
阅读异常消息。您正在将文件内容传递给需要文件名的方法。您实际的问题可能是“如何从字符串创建流”,这是一个完整的文档。@CodeCaster理论上讲,
checksum.txt
包含一行保存路径和文件名的可能性很小。…@rene是的,但不会引发ArgumentException。
static void Main(string[] args)
{
string checksum = GetChecksum("C://Users//wiproat3//Desktop//checksum.txt");
Console.WriteLine(checksum);
Console.ReadLine();
}