2013-02-12 69 views
2

我正在從Visual Basic 6機器翻譯到C#的代碼中工作。我試圖打開一個文件並閱讀它的內容。這是一個簡單的,短的156字節的文本文件,並在strPath的路徑是正確的,該文件可以很容易地在文本編輯器打開爲什麼我得到這個文件I/O異常?

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也沒有,並且它返回了正確的大小。

在此先感謝!

回答

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 :)

+0

賓果。該訂單由自動翻譯代碼生成,因此我忽略檢查它。我的錯。你(你)很好。我喜歡使用不同的庫,但有20,000行代碼,他們昨天需要它... – user316117 2013-02-12 20:14:37

相關問題