为什么我得到这个文件I/O异常

本文关键字:异常 文件 为什么 | 更新日期: 2023-09-27 17:58:55

我正在处理从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(倒数第二行)正在抛出IOException"错误的文件名或编号"

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

提前感谢!

为什么我得到这个文件I/O异常

看起来这些参数是错误的。来自文件:

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

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

所以看起来应该是:

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

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