我正在使用从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 也没有抛出异常,并且它返回了正确的大小。
提前致谢!
答案 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
的东西:)