标签:
相信这个枚举类型大家会比较陌生,甚至有同学见都没见过(惭愧的是,我也是才认识它没多久),陌生归陌生,但它的作用力也是不可低估,只是.Net帮我们把它封装得比较好,以至于我们一度认为它不是什么重要角色。好吧,进入主题!
包含用于控制其他 FileStream 对象对同一文件可以具有的访问类型的常数。这句话是什么意思呢?说实话,我现在看句话还是觉得很纠结,相信很多同学看到也是一头雾水,没关系,我们先跳过!
看它的成员描述,和FileAccess很是相似,那我们就尝试着来揭开它暂时神秘的面纱吧!
从字面上的意思,我们可以理解为首先打开一个文件之后(资源未释放),我们可以再用只读的方式读取文件从而不会抛出文件无法访问的异常。利用以下的方法,可以轻易的再完成这个实验:
static void WriteFile(FileMode fileMode, FileAccess fileAccess, FileShare fileShare) { Console.WriteLine("please input your content."); var content = Console.ReadLine(); FileStream fs = new FileStream(FILEPATH, fileMode, fileAccess, fileShare); var buffer = Encoding.Default.GetBytes(content); fs.Write(buffer, 0, buffer.Length); fs.Flush(); } static void ReadFile(FileAccess fileAccess, FileShare fileShare) { FileStream fs = new FileStream(FILEPATH, FileMode.Open, fileAccess, fileShare); var buffer = new byte[fs.Length]; fs.Position = 0; fs.Read(buffer, 0, buffer.Length); Console.WriteLine(Encoding.Default.GetString(buffer)); }
调用代码:
WriteFile(FileMode.Create, FileAccess.Write, FileShare.Read);
ReadFile(FileAccess.Read, FileShare.Read);
这是什么回事?不是都设置成已读了吗?或许只能在读文件的时候才能设置为只读共享。我们再尝试一下:
ReadFile(FileAccess.Read, FileShare.Read);
ReadFile(FileAccess.Read, FileShare.Read);
标签:
原文地址:http://www.cnblogs.com/feiyuhuo/p/5414788.html