打工笔记--------------------winform程序报错CLR20r3签名System.I0.IOException

发布时间 2023-12-19 16:44:33作者: 我们打工人

先看问题

编写了一个程序在我本机运行没有问题,放到别人电脑上就有可能报这种错误

System.I0.IOException

 

 首先我问了一下ChatPgt:

他说:

CLR20r3 是一个通用的错误代码,表示在 .NET Framework 中发生了未处理的异常。System.IO.IOException 是与输入/输出操作相关的一个常见异常。

当你在 WinForms 应用程序中遇到这种错误时,通常是由以下原因引起的:

1、文件访问问题:尝试读取、写入或修改一个文件时,可能因为路径不存在、文件被其他进程锁定、磁盘空间不足等原因导致异常。
2、网络问题:在尝试从网络位置读取或写入数据时,网络连接可能中断或不稳定。 资源未释放:例如,文件流或数据库连接在使用后没有被正确关闭。
3、硬件问题:如硬盘故障、驱动器问题等也可能引发此类异常。
4、应用程序权限问题:尝试访问受限资源时,例如注册表、某些目录等,但没有相应的权限。 其他因素:例如第三方库、组件或API的bug,或是与操作系统或其他软件的兼容性问题。

考虑了一下,我确实在程序中尝试读取和修改几个文件,但我确信这几个文件是存在的

但是文件有没有被占用就不知道了

所有在使用文件之前加了一个判断

using System;  
using System.IO;  
  
class Program  
{  
    static void Main()  
    {  
        string filePath = @"C:\example\file.txt";  
  
        if (File.Exists(filePath))  
        {  
            if (File.IsLocked(filePath))  
            {  
                Console.WriteLine("文件已被其他进程占用");  
            }  
            else  
            {  
                Console.WriteLine("文件未被占用");  
            }  
        }  
        else  
        {  
            Console.WriteLine("文件不存在");  
        }  
    }  
}

神器的不报错了