如何断开本地JSON文件连接?解决文件占用无法替换问题
JSON文件读取后无法删除的解决方案
问题出在你没有正确释放文件读取资源,导致文件句柄被占用。你的代码中打开了StreamReader和JsonTextReader,但没有手动释放,系统不会立即回收这些资源,所以文件会被锁定,无法执行删除或替换操作。
两种可行的解决办法:
- 使用
Using语句自动管理资源
VB的Using语句会在代码块执行完毕后自动调用对象的Dispose方法,释放占用的文件句柄,是最安全的方式:
Using Sreader As StreamReader = File.OpenText("C:\Common\Current.json") Using Reader As JsonTextReader = New JsonTextReader(Sreader) Dim Treader As JObject = CType(JToken.ReadFrom(Reader), JObject) S1 = Treader.SelectToken("current.temp_c").ToString() End Using End Using
- 直接读取文件内容(更简洁)
Newtonsoft.Json提供了直接解析文件内容的方法,无需手动处理流对象,底层会自动完成资源释放:
Dim Treader As JObject = JObject.Parse(File.ReadAllText("C:\Common\Current.json")) S1 = Treader.SelectToken("current.temp_c").ToString()
采用以上任意一种方式,读取完成后文件句柄会被立即释放,后续的删除、替换JSON文件的操作就能正常执行。
内容的提问来源于stack exchange,提问作者Vahid Bahrami
相关产品推荐
相关产品推荐

