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 (最後から2番目) の行が 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が最初のパラメータであり、が 2 番目のパラメータであることに注意してくださいCharCount

したがって、呼び出しは次のようになります。

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

そうは言っても、私はこの種のコードを完全に避け、次のようなものを使用しようとしますFile.ReadAllText:)

于 2013-02-12T19:57:07.480 に答える