覆盖已有文件出错:无法访问已关闭的文件。

使用问题 · 584 次浏览
沧海叫一声 创建于 2023-07-26 13:44

我动作中有一条“写入文本文件”,用于将循环次数记录到一个TXT文字中(覆盖的方式),日志中出现以下错误记录,是什么原因?

2023-07-26 13:34:35,267 [27] WARN Quicker.Domain.Actions.X.BuiltinRunners.File.WriteTextFileStep - 覆盖已有文件出错:无法访问已关闭的文件。
System.ObjectDisposedException: 无法访问已关闭的文件。
   在 System.IO.__Error.FileNotOpen()
   在 System.IO.FileStream.Flush(Boolean flushToDisk)
   在 System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)
   在 System.IO.StreamWriter.Dispose(Boolean disposing)
   在 System.IO.TextWriter.Dispose()
   在 Quicker.Domain.Actions.X.BuiltinRunners.File.WriteTextFileStep.<>c__DisplayClass41_0.iDjOcYFjgHx()


瞑空凌 2023-07-26 16:31 :

你发这个看不懂啊,要不你搞个类似的动作分享出来?

沧海叫一声 回复 瞑空凌 2023-07-26 20:07 :

你做一个循环,循环3次,将循环次数写到一个文本文件中。运行后看日志就是这个错误信息,只是不影响动作运行,也不会弹出错误提示,它只存在于日志文件中。

沧海叫一声 回复 瞑空凌 2023-07-27 00:10 :

能写入文件内容是正常的,不影响动作,也不弹出错误提示,只是在日志文件里(C:\Users\用户名\AppData\Local\Quicker\logs)会有错误信息的记录,不知道用不用理会。

瞑空凌 回复 沧海叫一声 2023-07-27 14:50 :

经过测试,只要写入内容就会有这个

个人判断没有问题,应该是每次写入时,没有先打开,反而是打开报错后再执行打开,然后写入,写入完毕自动关闭,应该是防止浪费资源.

所以这个应该算是程序bug,可以不用理会,就是碍眼而已.

我怀疑是不是专门用是否错误来判断文件是否是打开状况,然后日志方面又没有干掉.

回复内容
CL 2023-07-26 21:57
#1

请分享一个能够复现此问题的最简单动作我这里测试一下看看。



沧海叫一声 回复 CL 2023-07-27 00:18 :

内容见楼下。能写入文件内容是正常的,不影响动作,也不弹出错误提示,只是在日志文件里(C:\Users\用户名\AppData\Local\Quicker\logs)会有错误信息的记录,不知道用不用理会。

沧海叫一声 最后更新于 2023-07-27 00:19
CL 回复 沧海叫一声 2023-07-27 07:06 :

动作上右键,分享动作,选择非公开分享,然后将网址贴一下。参考:https://getquicker.net/kc/manual/doc/share-action 

CL 最后更新于 2023-07-27 07:06
沧海叫一声 回复 CL 2023-07-27 13:36 :

https://getquicker.net/Sharedaction?code=d67800b1-b454-4d41-50d7-08db8e3bceb3

CL 回复 沧海叫一声 2023-07-27 07:08 :

本地测试没有出错


CL 2023-07-27 17:39
#3

log里确实有一条,经过研究发现有个地方多释放了一次,我等下一版去除一下就可以了。 

回复主贴