IOException未处理C#

时间:2018-01-18 14:43:44

标签: c# .net console console-application

static void Main(string[] args)
    {
        File.Create("Script.txt");
        execute();
        Console.ReadKey();
    }

 static void execute()
    {
        if (File.Exists("Script.txt"))
        {
            string[] codex = System.IO.File.ReadAllLines("Script.txt");
            foreach (string i in codex)
            {
                Console.WriteLine("{0} ", i);
            }
        }
        else
        {
            Console.WriteLine("The path does not exists.");
        }
    }

我试过这段代码,但是我收到了这个错误。 mscorlib.dll

中发生了未处理的“System.IO.IOException”类型异常

3 个答案:

答案 0 :(得分:0)

函数File.Create(string filename)返回一个打开的流。

你应该在阅读之前写一些内容。 然后,您必须在调用File.ReadAllLines之前关闭该流。

可在此处找到文档:(File.Create) https://msdn.microsoft.com/en-us/library/d62kzs03(v=vs.110).aspx

可在此处找到文档:(File.ReadAllLines) https://msdn.microsoft.com/en-us/library/dd383503(v=vs.110).aspx

答案 1 :(得分:0)

File.Create将获取刚刚创建的文件的独占锁定。

在通过调用.Dispose().Close()

释放锁定之前,其他来电者都无法访问该文件

但是我建议您使用StreamWriter并将其包装在一个用于您的案例

using(StreamWriter sw = new StreamWriter("file name"))
{
    //do something
}

答案 2 :(得分:0)

更改

File.Create("Script.txt"); 

using (File.Create("Script.txt")) {}

流将关闭,您的

System.IO.File.ReadAllLines("Script.txt");

会正常工作。