System.ArgumentException'发生在mscorlib.dll中

本文关键字:mscorlib dll ArgumentException System | 更新日期: 2023-09-27 18:13:03

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();
    }
}

我正在尝试为文件创建校验和。虽然调试文件内容是红色的,但我得到这个错误"类型'系统的第一次机会异常。在" fileststream "行中mscorlib.dll"发生了ArgumentException。

System.ArgumentException'发生在mscorlib.dll中

您只需更正对GetChecksum函数的调用。

现在你将checksum.txt的完整内容作为字符串传递给GetChecksum的m_fileinput参数。但是File.OpenRead正在等待文件路径-而不是文件的内容。

你所要做的就是更新Main函数,使其看起来像下面的代码:

static void Main(string[] args)
{
    string checksum = GetChecksum("C://Users//wiproat3//Desktop//checksum.txt");
    Console.WriteLine(checksum);
    Console.ReadLine();
}