zoukankan      html  css  js  c++  java
  • C#IO正由另一进程使用,因此该进程无法访问该文件

    原代码如下:

    static void Main(string[] args)
            {
                Directory.CreateDirectory(@"d:\ok");
                File.Create(@"d:\ok\abc.txt");
                string str = "sve";
                FileStream fs = null;
                try
                {
                    //1、创建文件流(字节流)
                    using (fs = new FileStream(@"d:\ok\abc.txt", FileMode.OpenOrCreate, FileAccess.Write))
                    {
                        byte[] bytes = Encoding.Default.GetBytes(str);
                        //2、写操作
                        fs.Write(bytes, 0, bytes.Length);             
                        fs.Flush();//清空流
                        Console.WriteLine("写入成功!");
                    }             
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                finally
                {
                    //3、关闭流
                    fs.Close();
                }
            }

    上面执行会出错:文件“d:\ok\abc.txt”正由另一进程使用,因此该进程无法访问该文件

    原因:File.Create(@"d:\ok\abc.txt");这句代码会返回一个FileStream流与该文件链接,因此被占用。

    解决方法:将上面的代码改为File.Create(@"d:\ok\abc.txt").Close();即可解决

  • 相关阅读:
    Redis的四种模式,单机、主从、哨兵、集群
    .NET 跨域问题
    C# 利用正则表达式获取富文本框中所有图片路劲
    ActiveMQ入门实例(.NET)
    ActiveMQ的使用以及应用场景
    关于消息队列的使用方法(RocketMQ)
    Redis系列 需要注意事项
    .NET:在线悲观锁、在线乐观锁、离线悲观锁、离线乐观锁代码示例
    C# 简单介绍Redis使用
    API Get跟Post 的区别?
  • 原文地址:https://www.cnblogs.com/grj001/p/12223527.html
Copyright © 2011-2022 走看看