FileStream fs = new FileStream("c://log.txt", FileMode.Append, FileAccess.Write, FileShare.ReadWrite);我有个日志文件,并没有读的操作,只是把日志写入就可以了。
我发现我最后一个参数如果这么写:FileShare.Write
操作完之后,进服务器下那个txt文本双击打开提示“另一个程序正在使用,进程无法访问”当我把最后一个参数修改成FileShare.ReadWrite
就没这样的问题了,可以双击打开txt文件了。请问:FileShare.WriteFileShare.ReadWrite在速度上与FileShare.ReadWrite相比,具有优势吗?
谢谢呀~

解决方案 »

  1.   

    有没调用fs.Close()?
    如果程序正常退出并关闭了文件流,不管怎么设置,那文件都能打开
      

  2.   


    一,关闭了,也释放了,这个我还是知道的。
    二,我的问题是:FileShare.WriteFileShare.ReadWrite在速度上与FileShare.ReadWrite相比,具有优势吗?谢谢
      

  3.   


    二,我的问题是:FileShare.Write在速度上与FileShare.ReadWrite相比,具有优势吗?
      

  4.   

    区别不大,只是一种记录锁定规则。ReadWrite是乐观锁定,Write是悲观锁定。如果多人并发状态下
    对于一些 无关痛痒的 数据 我建议使用ReadWrite。而非常重要的数据,建议使用Write方式,并且在程序中自己用lock关键字自己来保证同时只有一个人访问
    (实际上这种设计也不太好,如果是这种状态我更愿意用数据库,而不是文本来保存数据,毕竟数据库的并发机制是经过检验的,这个总比自己山寨的强点)