1

嗨,任何人都可以建议我如何解决这个错误

 **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()
4

2 回答 2

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

谢谢!

于 2013-02-17T07:02:34.363 回答
0

如果没有更多关于您的文件系统是什么样的信息、您拥有什么权限以及您在程序中尝试做什么和使用什么的更多信息,几乎没有办法知道如何为您提供帮助。

但是,由于旧版 DLL 与更新的技术(例如 .Net 1 与 .Net 4.5)混合在一起,我过去曾遇到过这个问题。

.Net 4.5 及更高版本下的旧 DLL 很难管理并确保它们正常运行。它们会导致内存泄漏,它们不正确地尊重内存,并且它们以多种方式被硬编码来做这些天 .Net 4.5 及更高版本会做得更好的事情。

我建议您向我们提供您的项目设置和 COM 引用,因为其中之一很可能是您收到此错误的原因。

这是一个消除的过程。一次删除一个引用,注释掉代码,调试等,直到找到导致问题的罪魁祸首 DLL。然后您需要决定是否使用另一个 DLL、另一个参考或更好,首先不要使用那个有问题的 DLL。

祝你好运,

于 2017-12-04T02:26:14.917 回答