为什么我收到此文件I / O异常?

时间:2013-02-12 19:55:01

标签: c# vb.net file-io

我正在使用从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 也没有抛出异常,并且它返回了正确的大小。

提前致谢!

1 个答案:

答案 0 :(得分:5)

看起来这些争论是错误的。来自documentation

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

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

所以看起来应该是:

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

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