【问题标题】:IOException was unhandled C# [closed]IOException 未处理 C# [关闭]
【发布时间】:2018-01-18 14:43:43
【问题描述】:
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”类型的未处理异常

【问题讨论】:

  • 请显示完整的异常message(告诉你what出错了)和stack trace(告诉你你哪里出错了:File.CreateFile.ReadAllLInes)。
  • try and catch

标签: c# .net console console-application


【解决方案1】:

改变

File.Create("Script.txt"); 

进入

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

流将被关闭,您的

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

会正常工作。

【讨论】:

    【解决方案2】:

    函数 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

    【讨论】:

      【解决方案3】:

      File.Create 将获得它刚刚创建的文件的排他锁。

      在通过调用.Dispose().Close() 释放锁之前,其他调用者将无法访问该文件

      不过,我建议您使用 StreamWriter 并将其包裹在 using 中以供您使用

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-10
        • 2021-10-23
        • 1970-01-01
        • 2018-04-07
        • 2010-10-12
        • 1970-01-01
        相关资源
        最近更新 更多