您可以提出任何建议我如何解决此错误
**Exception from HRESULT: 0x800A0046 (CTL_E_PERMISSIONDENIED)**
请注意,在文件中写入字符串数据时,很少会抛出所有文件的错误。
请找到我在VB.net中使用的以下代码
Dim fso, file
strResult = "this is the sample string data"
strPath = it is local path only.
fso = CreateObject("Scripting.FileSystemObject")
file = fso.opentextfile(strPath, ForWriting, True)
file.write(strResult)
file.Close()
答案 0 :(得分:0)
引发错误的原因是,您没有编辑文件的权限,或者因为该文件正被其他进程或其他用户使用。使用旧的FileSystemObject也不是一个好主意。使用.NET框架中的托管库,因为它将为您提供更好的错误支持。请参阅下面的示例,了解如何在下面完成同样的事情......
Try
File.WriteAllText("Your data", "FILE")
Catch ex As Exception
MsgBox (ex.Message) 'Or however you want to handle this...
End Try
谢谢!
答案 1 :(得分:0)
如果没有关于您的文件系统的更多信息,您拥有什么权限,以及您在计划中尝试做什么和使用什么,那么很少有人知道如何帮助您。
但是,我过去遇到过这个问题,原因是遗留的DLL与最近的技术混合在一起 - 例如.Net 1与.Net 4.5。
.Net 4.5及更高版本下的旧DLL在管理并确保它们正常运行的背后是一种痛苦。它们导致内存泄漏,它们不能正确地尊重内存,而且它们在许多方面都是硬编码的,以便做到.Net 4.5及以上版本可能会做得更好。
我建议您向我们提供您的项目设置和COM引用,因为其中一个很可能是您收到此错误的原因。
这是一个消除过程。一次消除一个引用,注释掉代码,调试等,直到找到导致问题的罪魁祸首DLL。然后你需要决定是否使用另一个DLL,另一个参考或更好的,首先没有那个违规的DLL。
祝你好运,