Vb.net 使用Filesystemobject.OpentTextFile但不在我的计算机上时出现错误438
注意:我对使用VisualStudio和在VB6和VBA之外编写代码还不熟悉。此外,我还通过使用IO.File解决了我的问题 然而,我真的很想知道为什么这不起作用:Vb.net 使用Filesystemobject.OpentTextFile但不在我的计算机上时出现错误438,vb.net,visual-studio,Vb.net,Visual Studio,注意:我对使用VisualStudio和在VB6和VBA之外编写代码还不熟悉。此外,我还通过使用IO.File解决了我的问题 然而,我真的很想知道为什么这不起作用: Dim FSO As New FileSystemObject Dim FSOts As TextStream FSOts = FSO.OpenTextFile(filepath1, IOMode.ForReading, True) While FSOts.AtEndOfStream = False temp = FSOts
Dim FSO As New FileSystemObject
Dim FSOts As TextStream
FSOts = FSO.OpenTextFile(filepath1, IOMode.ForReading, True)
While FSOts.AtEndOfStream = False
temp = FSOts.ReadLine()
MsgBox(temp)
tempcollection.Add(temp)
End While
FSOts.Close()
它可以在我的电脑上运行,但由于某些原因,它不能在其他电脑上运行。我以前在vb脚本中使用过这个对象,但在这种情况下,第二个参数是“ForReading”,并且是在另一个IDE(FEMAP)中编写的,该IDE引用了32位的scrun.dll。在VisualStudio中,我注意到脚本库指向syswow64;我不确定这是否有什么区别。所有分布式站点都运行64位操作系统并具有此库。在任何情况下,当我尝试使用以下命令时,都会出现错误438:
FSOts = FSO.OpenTextFile(filepath1, IOMode.ForReading, True)
VS不会让我只用“ForReading”来编译它
同样,我以前在vb6中使用过这个对象,但第二个参数不是iomode.forreading,而是“forreading”。在这种情况下,它在给我带来问题的同一台机器上工作得很好(当然除了我的!)。在VB6中,您可以键入enum,例如
ForReading
,而在VS.NET中,您将使用IOMode.ForReading
。错误438的描述是什么?我使用的是64位操作系统,脚本运行时指的是c:\windows\system32\scrun.dll仅使用IO.File。当你有选择的时候,忘掉旧技术吧。沙卡尔佩什:当我在“项目属性”下查看我的引用时,它表明我引用的是syswow64。总之,错误438被描述为“对象不支持此属性或方法”,因此机器之间似乎存在一些兼容性/修订问题。