File.Create(path)未关闭遇到的一点点问题
2024-09-07 04:41:55
本人老菜鸟一枚,不是因为偶是菜鸟中的老手,而是偶是老了但是还是很菜的鸟╮(╯▽╰)╭,不过打今儿起偶想要腾飞……
今天写文本文件编辑类时遇到一个小问题,下面先将问题描述一下:
1、写文本文件时都会习惯性的判断一下文件是否存在,如果不存在就创建一个出来,也就是下面的代码
if (!File.Exists(logPath))
{
File.Create(logPath);
}
看起来似乎没什么问题,但是很不凑巧的,问题就是来了,下面几种写文本的方式,在第一次建立文本文件的时候数据都写不进去。
File.WriteAllText(logPath, msg); File.WriteAllLines(logPath,msg);
byte[] buffer = Encoding.Default.GetBytes(msg);
FileStream myFileStream = new FileStream(logPath, FileMode.Append, FileAccess.Write);
myFileStream.Write(buffer, , buffer.Length);
myFileStream.Close();
myFileStream.Dispose();
经查阅,由此方法创建的 FileStream 对象的 FileShare 值默认为 None;直到关闭原始文件句柄后,其他进程或代码才能访问这个创建的文件。也就是说必须要关闭,要关闭,要关闭,下面就是问题的解决办法:(https://msdn.microsoft.com/zh-cn/library/d62kzs03(VS.80).aspx)
if (!File.Exists(logPath))
{
File.Create(logPath).Close();
}
其实,File.WriteAllText(),FileStream中好多写入文本的方法都默认新建文件,但是本老菜鸟还是觉得判断一下比较好,毕竟可以避免那些不会新建文件的方法报错。
欢迎指正,共同进步。
最新文章
- JS Date.parse() 函数详解
- AC日记——C’s problem(c) TYVJ P4746 (清北学堂2017冬令营入学测试第三题)
- XE5 修复 安卓 输入法隐藏 后 无法退出的问题 3.2
- bash命令行返回值和展开
- alter和alert防错?
- [改善Java代码]适时选择getDeclaredxxx和getxxx
- QMessageBox 弹出框上的按钮设置为中文
- MVC client validation after PartialView loaded via Ajax MVC3中 弹出 Dialog时候 提交的时候 使用 Jquery 不验证 form表单 的解决办法
- USACO3.41Closed Fences(几何)
- javascript代码混淆原理
- MYSQL C API 记录
- 初始化仓库(git init)
- MaxCompute安全管理指南-基础篇
- 继承RelativeLayout 自定义布局
- (其他)Thinkpad笔记本装系统
- 拜托!面试请不要再问我Spring Cloud底层原理[z]
- 1-2Controller之Session
- Linux下网卡混杂模式设置和取消
- Proxy源代码分析——谈谈如何学习Linux网络编程
- LeetCode 32 Longest Valid Parentheses(最长合法的括号组合)