社区
C#
帖子详情
C#里面的文件锁?
liutaoyue
2007-01-22 02:57:45
现在有个文件Data.txt文件,有另外一个程序在定时往里面写入数据,而我要做的就是定时从这个文件中读取数据! 这牵涉到一个文件锁的问题,我用的是FileStream流串一行一行读的,但是每当人家那个程序往里面写入数据的时候,我这边肯定会报错:"进程无法访问×××文件,因为被其他进程在调用",我想问问C#中是否有文件锁之类的东西,能知道该文件正在被使用,我可以Sleep几秒钟在取数啊??????
谢谢各位达人了!
...全文
911
8
打赏
收藏
C#里面的文件锁?
现在有个文件Data.txt文件,有另外一个程序在定时往里面写入数据,而我要做的就是定时从这个文件中读取数据! 这牵涉到一个文件锁的问题,我用的是FileStream流串一行一行读的,但是每当人家那个程序往里面写入数据的时候,我这边肯定会报错:"进程无法访问×××文件,因为被其他进程在调用",我想问问C#中是否有文件锁之类的东西,能知道该文件正在被使用,我可以Sleep几秒钟在取数啊?????? 谢谢各位达人了!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liutaoyue
2007-01-22
打赏
举报
回复
那个写入程序是用VB写的,就是一条普通的Print命令一行一行写入数据。 应该没加什么锁吧。看来还真得用try..catch了,晕!
谢谢各位了!!
灰太狼
2007-01-22
打赏
举报
回复
首先你要确定调用文件的那个程序是否使用了锁,如果没有使用锁,那么你程序中使用文件锁也就没有什么意义了,只能用try catch 来做了,如果对方程序使用了文件锁的话,你也用文件锁就可以了,关于锁你可以参看http://blog.csdn.net/tjvictor/archive/2007/01/20/1488290.aspx
huheng_0_0
2007-01-22
打赏
举报
回复
public void Read()
{
if (!File.Exists(path))
{
// 如果文件不存在,处理过程
}
else
{
try
{
// 读取文件中的内容
}
catch (Exception e)
{
Thread.Sleep(10);
Read();
}
}
}
viena
2007-01-22
打赏
举报
回复
写一个此文件的专用操作类,操作代码放在lock语句块里面~
liutaoyue
2007-01-22
打赏
举报
回复
回复2楼:
try{}catch{}当然不是什么好的方法,这样的话,所有的程序中遇到的问题都可以用这玩意来处理,明显失去了意义。 谢谢了! 我是个菜鸟,不过觉得这个问题好像应该不是很难吧。
来个高人稍微指点一下这个很常见的问题撒! ^_^
liutaoyue
2007-01-22
打赏
举报
回复
什么意思? 那个写入数据的程序我是不可能去改人家的,我要做的就是从这个文件里面读数,但是要和他写数时错开。
huheng_0_0
2007-01-22
打赏
举报
回复
1.如果写文件的工程是你自己掌控的,你可以在那里面设置一个,写的时候,别人可读!这样你的读就没问题了
2.如果你无法控制写工程,那么你可以用try...catch来处理,如果没人写,正常读出,如果有人写,你不能读,进入catch块,然后先Thread.Sleep(millisecond);然后在去检查.
只是一个建议,等待高手得指点
noky
2007-01-22
打赏
举报
回复
用MemoryStream吧,当MemoryStream的东西写道一定的容量的时候在写到Data.txt文件里。你读取文件信息从MemoryStream中读取吧!
Golang基础学习1
文章目录package 基本管理单元公共/私有 变量Go 语言中的下划线1. 下划线在 `import` 中2. 下划线在代码中Go 命令 package 基本管理单元 同一个package下面,可以有非常多的不同
文件
,只要每个
文件
的头部 都有 如 “package xxx” 的相同name; 就可以在主方法中使用 xxx.Method() 调用不同
文件
中的方法了。 ps:
文件
夹名字可以和这个...
【go】建工程、初始化、module/package/import语法
初始化一个包含可执行 main 方法的 Go 工程,只需两条命令。下面我会分步说明,并解释每条命令的作用。操作步骤 1、创建并进入项目目录 首先,为你的项目创建一个独立的
文件
夹,并进入该目录: 2、初始化 Go 模块 (go mod init) 这是关键的一步,用于创建一个 Go 模块来管理你的项目依赖。运行以下命令: 模块名称通常是你的代码仓库的路径,例如 github.com/yourusername/myproject 。如果是本地测试,也可以使用一个简单的名称,例如 myproject 。执行后
golang的import原理
描述 import是个很重要的东西,golang是怎么import的 import查找包的顺序? import的是什么,包还是路径? 自己项目中怎么import golang的包管理历史 第一阶段 早期golang,import是直接查找GOPATH/scr,GOPATH/scr,GOPATH/scr,GOROOT/scr目录 第二阶段 v1.5开始采用vendor模式,每个项目有一个vendor目录,存放依赖包 第三阶段 v1.12开始增加了go mod用于管理依赖包 部分学习资料比较早,
go package、import、go.mod 理解 以及 私有包引入
ds
Go与Java中package的理解与区别
一.GO中package的使用 package是go程序中最基本的分发单位和工程管理中依赖关系的体现,一个"xx.go"源
文件
必须属于某个package,一个package可以拆成多个".go"源
文件
; 每个".go"源代码
文件
开头都拥有一个package声明,表示该源代码所属的package; 要生成golang可执行程序(bin目录下),必须建立一个名为main的package,并且在...
C#
111,128
社区成员
642,533
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章