zoukankan      html  css  js  c++  java
  • 【转】C#读取文件时的共享方式

    string sFileName = @"C:Exchange.dat";
    System.IO.StreamReader file = new System.IO.StreamReader(sFileName);
    string sTxt = file.ReadLine();
    file.Close();
    在这个代码中,C#读取文件时,默认是Read模式,即它打开文件后,别的应用程序只能读取该文件而不能修改文件。 

    如果要别的应用程序在它打开该文件的时候也能修改该文件,则需要指定模式为ReadWrite:
    string sFileName = @"C:Exchange.dat";
    FileStream fs = new FileStream(sFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
    System.IO.StreamReader file = new System.IO.StreamReader(fs);
    string sTxt = file.ReadLine();
    file.Close(); 

    这里的共享方式FileShare,是指授予其它应用程序在操作该文件时所具有的权限。取值有None、Read、Write、ReadWrite等。

    None:谢绝共享当前文件。文件关闭前,打开该文件的任何请求(由此进程或另一进程发出的请求)都将失败。 

    Read:允许随后打开文件读取。如果未指定此标志,则文件关闭前,任何打开该文件以进行读取的请求(由此进程或另一进程发出的请求)都将失败。但是,即使指定了此标志,仍可能需要附加权限才能够访问该文件。

    ReadWrite:允许随后打开文件读取或写入。如果未指定此标志,则文件关闭前,任何打开该文件以进行读取或写入的请求(由此进程或另一进程发出)都将失败。但是,即使指定了此标志,仍可能需要附加权限才能够访问该文件。 

    Write:允许随后打开文件写入。如果未指定此标志,则文件关闭前,任何打开该文件以进行写入的请求(由此进程或另一进过程发出的请求)都将失败。但是,即使指定了此标志,仍可能需要附加权限才能够访问该文件。 

     感觉WriteNone的效果一样,都不能读和写。文件都不能打开,授予写的权限有何用!所以FileShare.None、FileShare.Write的时候,别的应用程序打开文件的时候没权限: 

    FileShare.Read的时候,则只能打开,而不能修改:

  • 相关阅读:
    JavaScript字面量
    JavaScript一元运算符、二元运算符和三元运算符
    JavaScript变量声明与变量声明提前
    JavaScript作用域链
    JavaScript变量污染
    语法糖
    JavaScript包装对象
    JavaScript全局变量与局部变量
    JavaScript标识符
    JS函数命名规范
  • 原文地址:https://www.cnblogs.com/wangjing215/p/4134978.html
Copyright © 2011-2022 走看看