以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- WriteAllText出现“文件被另一进程使用”,可能什么问题? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=84178) |
-- 作者:wfkbabro -- 发布时间:2016/4/25 11:23:00 -- WriteAllText出现“文件被另一进程使用”,可能什么问题? WIN8,64位,调试代码时输出了很多内容到日志文件,比较密集。 FileSys.WriteAllText("c:\\11.txt","调试内容", true) 然后就出错了:
另一台电脑WIN7,64位,同样的代码不出错。
两台电脑版本均为: 2014-11-11
顺便问下目前最新的版本,版本号在主界面有地方看了吗?谢谢 |
-- 作者:大红袍 -- 发布时间:2016/4/25 11:26:00 -- 加上try Cacth看看
http://www.foxtable.com/help/topics/2070.htm
|
-- 作者:wfkbabro -- 发布时间:2016/4/25 11:32:00 -- 谢谢,已明确是 WriteAllText 出的错, 但用try 只能跳过错误,还是不明白怎么纠错 谢谢, 望指点。
Try |
-- 作者:wfkbabro -- 发布时间:2016/4/25 11:34:00 -- 函数debugLog 里面,没有互锁的逻辑,就是WriteAllText 追加写入 是不是WriteAllText 处理多个写入任务时出错了?要重新安装或注册什么控件吗?谢谢。 |
-- 作者:大红袍 -- 发布时间:2016/4/25 11:34:00 -- 如果报错,就是这个时候.txt文本正在被别的程序打开和使用中。
你可以弄一个循环,不断尝试写入即可,如代码 do while true try FileSys.WriteAllText("d:\\test.txt", "abcd", True) Exit Do catch ex As exception End try Loop
|
-- 作者:wfkbabro -- 发布时间:2016/4/25 13:23:00 -- 试了。可以确定问题如下: 1.WriteAllText 用命令测试时,循环写入没问题,比如写入abcd 2.WriteAllText 用在程序中写文件文件时,即便写入abcd,也要出问题。 3.在WIN8 64位出错,在另一台WIN7 64位不出错,在另一台WIN7 32位也不出错 4.不知道怎么处理了。幸好在客户那没出岁暮。
测试代码: Vars("P_strLogFile") = "C:\\FoxtableDebug日志.txt"
catch ex As exception msgbox("ok") 此主题相关图片如下:qq截图20160425130529.png 此主题相关图片如下:qq截图20160425130548.png [此贴子已经被作者于2016/4/25 13:23:26编辑过]
|
-- 作者:大红袍 -- 发布时间:2016/4/25 14:22:00 -- 那试试这样
Do While True
|