黑马程序员技术交流社区

标题: 代码运行出错:正由另一进程使用,因此该进程无法访问此... [打印本页]

作者: 刘吉烨    时间: 2013-12-4 13:55
标题: 代码运行出错:正由另一进程使用,因此该进程无法访问此...
本帖最后由 刘吉烨 于 2013-12-4 21:19 编辑

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
//把 "这是一个配置文件" 写入 my.txt
            FileInfo file = new FileInfo("my.txt");
            file.Create();    //创建文件
            FileStream f = file.OpenRead(); //打开文件
            string value = "这是一个配置文件";
            byte[] arr = System.Text.Encoding.Unicode.GetBytes(value);
            f.Write(arr, 0, arr.Length); //写入文件
            f.Close(); //关闭文件
            Console.ReadKey();
        }
    }
}


运行报错 : 未处理IOException     文件“C:\Documents and Settings\Administrator\桌面\ConsoleApplication\ConsoleApplication\bin\Debug\my.txt”正由另一进程使用,因此该进程无法访问此文件。


怎么解决?
作者: Sayme    时间: 2013-12-4 15:15
my.txt 已经被一个东西打开了

你可以关闭打开他的软件 一般情况下是记事本正在编辑


作者: 刘吉烨    时间: 2013-12-4 16:56
亲 你把上面的代码复制 运行看下

作者: Var    时间: 2013-12-4 20:55
哎呀,哈哈哈,本来想帮你改改,发现没法改。

file.Create();这行代码本来就会创建一个FileStream,而你没有关闭。

作者: yuanlianxi03    时间: 2013-12-4 21:04
FileInfo file = new FileInfo("my.txt");
file.Create();    //创建文件
FileStream f = file.OpenRead(); //打开文件

file对象先是创建了文件,这时候就已经打开文件了,然后又用file.OpenRead()打开文件两次打开动作,肯定会造成占用
作者: Var    时间: 2013-12-4 21:08
还有一点是,就算您file.Create().Close();后还是有问题

你这  FileStream f = file.OpenRead();这是是只读的,不能写入。
作者: yuanlianxi03    时间: 2013-12-4 21:10
帮你修改了下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            //把 "这是一个配置文件" 写入 my.txt
            FileInfo file = new FileInfo("my.txt");
            FileStream f = file.Create();    //创建文件
            
            string value = "这是一个配置文件";
            byte[] arr = System.Text.Encoding.Unicode.GetBytes(value);
            f.Write(arr, 0, arr.Length); //写入文件
            f.Close(); //关闭文件
            Console.ReadKey();
        }
    }
}
作者: 刘吉烨    时间: 2013-12-4 21:18
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            FileInfo file = new FileInfo("my.txt");
            FileStream f = file.OpenWrite(); //打开文件
            string value = "这是一个配置文件";
            byte[] arr = System.Text.Encoding.Unicode.GetBytes(value);
            f.Write(arr, 0, arr.Length); //写入文件
            f.Close(); //关闭文件
            Console.ReadKey();
        }
    }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2