C#创建.txt文件提示正由另一进程使用,因此该进程无法访问此文件。

weixin_38668767 2017-11-10 10:43:07
本人C#初学者一枚,如图,当我每次要创建.TXT文件时,System.IO.File.AppendText那行就会报错,文件被另一线程占用
...全文
1843 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyDuang 2018-09-12
  • 打赏
  • 举报
回复 1
引用 1 楼 qq_25219331 的回复:
File.Create(filepath).Close();
感谢,解决了我的问题
weixin_38668767 2017-11-25
  • 打赏
  • 举报
回复
引用 4 楼 qq_25095899 的回复:
你这个代码有不太合理的地方 你用yyyyMMdd 做为文件名,然后又sleep 50 ,然后又继续用yyyyMMdd (而不是用之前的文件名) 假设 2017年11月12日 晚上23点59分59秒960毫秒 ,结果你sleep后,变成2017年11月13日了, 两个不同的文件了。 File.AppendAllText 是----“如果文件不存在的话 ,会自动创建”,所以你不需要做 “是否存在TXT,如果不存在就先创建 ” 的判断 你应该直接使用File.AppendAllText,不用那么麻烦
谢谢,已解决,忘记评论
njit_77 2017-11-13
  • 打赏
  • 举报
回复
应该是别的线程同时往里面写信息了。多线程不加锁容易出错
大然然 2017-11-13
  • 打赏
  • 举报
回复
你这个代码有不太合理的地方 你用yyyyMMdd 做为文件名,然后又sleep 50 ,然后又继续用yyyyMMdd (而不是用之前的文件名) 假设 2017年11月12日 晚上23点59分59秒960毫秒 ,结果你sleep后,变成2017年11月13日了, 两个不同的文件了。 File.AppendAllText 是----“如果文件不存在的话 ,会自动创建”,所以你不需要做 “是否存在TXT,如果不存在就先创建 ” 的判断 你应该直接使用File.AppendAllText,不用那么麻烦
Vito1993 2017-11-10
  • 打赏
  • 举报
回复
File.Create(filepath).Close();
白衣如花 2017-11-10
  • 打赏
  • 举报
回复
要看你的zisuo这个变量是否是静态的,即是否能保证每次判断的zisuo是否是同一个东西。 而且如果当前zisuo为false,你是否能等一下再写? 写日志一般用静态枷锁的方法,或者单独线程处理日志队列
c02645 2017-11-10
  • 打赏
  • 举报
回复
using (StreamWriter sw = new StreamWriter(txtPath, true, Encoding.Default)) { sw.WriteLine("追加记录------"); sw.Dispose(); sw.Close(); }
C#源码大集合 01(共3卷)之前分为四个包,后两个包上传不了,对于已经下载的朋友表示赚意,现在重新再发一次(改为3卷)├─C#源码第一部分│ ├─第1章 控件操作│ │ ├─实例1 如何使用错误提醒控件│ │ ├─实例10 如何使用列表视图控件│ │ ├─实例11 如何使用多选列表框控件│ │ ├─实例12 如何使用图像控件│ │ ├─实例13 如何使用窗体分隔控件│ │ ├─实例2 如何使用信息提示控件│ │ ├─实例3 如何使用菜单控件│ │ ├─实例4 如何使用工具栏控件│ │ ├─实例5 如何使用状态栏控件│ │ ├─实例6 如何使用托盘控件│ │ ├─实例7 如何使用标签页控件│ │ ├─实例8 如何使用进度条控件│ │ └─实例9 如何使用树视图控件│ ├─第2章 文件管理│ │ ├─实例14 如何获取程序文件信息│ │ ├─实例15 如何获取指定文件的根信息│ │ ├─实例16 如何获取当前程序所在的文件夹│ │ ├─实例17 如何获取指定文件夹下的所有文件│ │ ├─实例18 如何获取指定文件夹下的所有文件夹│ │ ├─实例19 如何获取和设置文件属性│ │ ├─实例20 如何获取和设置文件夹属性│ │ ├─实例21 如何判断文件文件夹是否存在│ │ ├─实例22 如何创建和删除多层文件夹│ │ ├─实例23 如何监视文件文件夹系统变化情况│ │ ├─实例24 如何加解密文件│ │ ├─实例25 如何切分组合文件│ │ ├─实例26 如何以流式方式读写文本文件│ │ ├─实例27 如何直接打印文件│ │ ├─实例28 如何操作帮助文件│ │ ├─实例29 如何操作WORD文件│ │ ├─实例31 如何播放MP3文件│ │ ├─实例32 如何播放VCD文件│ │ ├─实例33 如何播放DVD文件│ │ ├─实例34 如何播放Flash文件│ │ └─实例35 如何播放RealPlayer文件│ ├─第3章 程序设置│ │ ├─实例36 如何创建椭圆形窗体│ │ ├─实例37 如何创建文字形窗体│ │ ├─实例38 如何创建不规则窗体│ │ ├─实例39 如何创建移动的窗体│ │ ├─实例40 如何创建无标题栏窗体│ │ ├─实例41 如何拖动无标题栏窗体│ │ ├─实例42 如何制作自绘式菜单│ │ ├─实例43 如何制作图形组合框│ │ ├─实例44 如何设置窗体的透明度│ │ ├─实例45 如何设置窗体启动位置│ │ ├─实例46 如何设置窗体最前端显示│ │ ├─实例47 如何实现精灵提示│ │ ├─实例48 如何实现打印预览│ │ ├─实例49 如何实现剪贴板循环│ │ ├─实例50 如何实现菜单历史列表│ │ ├─实例51 如何实现程序互斥运行│ │ ├─实例52 如何屏蔽鼠标消息│ │ ├─实例53 如何模拟键盘输入│ │ ├─实例54 如何使用消息提示框│ │ ├─实例55 如何使用系统API函数(INI)│ │ ├─实例56 如何获取和设置输入法│ │ ├─实例57 如何在程序中启动其他程序│ │ ├─实例58 如何在程序中关闭其他程序│ │ ├─实例59 如何在开机时自动启动程序│ │ ├─实例60 如何启动电话拨号程序│ │ ├─实例61 如何启动屏幕保护程序│ │ ├─实例62 如何启动系统控制面板程序│ │ ├─实例63 如何编写多线程程序│ │ ├─实例64 如何编写DLL服务端程序│ │ ├─实例65 如何编写DLL客户端程序│ │ ├─实例66 如何编写用户控件程序│ │ └─实例67 如何给程序打包│ ├─第4章 系统维护│ │ ├─实例68 如何获取系统基本信息│ │ ├─实例69 如何获取系统服务信息│ │ ├─实例70 如何获取系统进程信息│ │ ├─实例71 如何获取系统日期时间│ │ ├─实例72 如何获取系统所有驱动器│ │ ├─实例73 如何获取系统驱动器信息│ │ ├─实例74 如何获取系统计数器信息│ │

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧