2

我正在编写从 Visual Basic 6 机器翻译成 C# 的代码。我正在尝试打开一个文件并读取其内容。这是一个简单的 156 字节短文本文件,strPath 中的路径正确,可以在文本编辑器中轻松打开文件

ffNum = VBNET.FileSystem.FreeFile();
VBNET.FileSystem.FileOpen(ffNum, strPath, VBNET.OpenMode.Input,
                          VBNET.OpenAccess.Default, VBNET.OpenShare.Default, -1);
int nSize = (int)VBNET.FileSystem.LOF(ffNum);
String thedata = VBNET.FileSystem.InputString(nSize, ffNum);
VBNET.FileSystem.FileClose(new int[] { ffNum });

InputString (next to last) 行抛出 IOException " Bad file name or number "

怎么可能?FileOpen调用没有抛出异常,LOF没有,而且它返回了正确的大小。

提前致谢!

4

1 回答 1

5

看起来这些论点是错误的。从文档中:

Public Shared Function InputString ( _
    FileNumber As Integer, _
    CharCount As Integer _
) As String

注意如何FileNumber是第一个参数,CharCount是第二个。

所以看起来调用应该是:

String thedata = VBNET.FileSystem.InputString(ffNum, nSize);

也就是说,我会尝试完全避免这种代码,并使用类似的东西File.ReadAllText:)

于 2013-02-12T19:57:07.480 回答