可以的话,FileAccess怎么设置?

解决方案 »

  1.   


    使用之前最好lock一下,用过之后尽快释放。
      

  2.   

    应该不可以同时APPEND,用LOCK锁定吧。
      

  3.   

    System.IO.FileStream fs=new FileStream(文件名,System.IO.FileMode.OpenOrCreate,System.IO.FileAccess.Write,System.IO.FileShare.Write,8,true);
      

  4.   

    FileStream sw = new FileStream(filename, System.IO.FileMode.OpenOrCreate,System.IO.FileAccess.ReadWrite, System.IO.FileShare.ReadWrite)
      

  5.   

    你的想法实在太恐怖了。这样回出大问题的!
    建议你放弃该想法,还是用LOCK锁定吧
      

  6.   

    to:fd7893(看着办吧)
    还好啊
    我就是这样用多线程下载,并且多线程写入同一个文件的,用的时候new一下,用完释放
    没见什么问题
      

  7.   

    TO jingtao_zhou(小熊)"用的时候new一下,用完释放"
    就是写在一个方法里? 所有线程调用这个方法去Append?释放是不是close?
      

  8.   

    我是先打开文件
    指定要写入的位置
    然后在write
    close()就释放
    没有Append方法,但在构造FileStream类的时候,可以指明
    public FileStream(
       string path,
       FileMode mode,
       FileAccess access,
       FileShare share,
       int bufferSize,
       bool useAsync
    );
    path 
    当前 FileStream 对象将封装的文件的相对路径或绝对路径。 
    mode 
    FileMode 常数,确定如何打开或创建文件。 
    access 
    FileAccess 常数,它确定 FileStream 对象访问文件的方式。这将获取 FileStream 对象的 CanRead 和 CanWrite 属性。如果 path 指定磁盘文件,则 CanSeek 为 true。 
    share 
    FileShare 常数,确定文件如何由进程共享。 
    bufferSize 
    所需的缓冲区大小(以字节为单位)。对于 0 和 8 之间的 bufferSize 值,缓冲区的实际大小设置为 8 字节。 
    useAsync 
    指定使用异步 I/O 还是同步 I/O。可以去查看msdn
      

  9.   

    在使用之前先实例化FileStream,并设置FileShare值。然后将FileStream对象传入各个线程处理对象,并在各个线程处理对象中分别确定FileStream的Position.要确保各个线程处理对象的Position必须唯一,且处理长度不要与其它线程重复。