2011-07-14 41 views
1

我從來沒有遇到過這個問題。誰能告訴我,爲什麼這段代碼只是掛永遠掛:File.Open只是掛起,什麼都不做

FileStream stream = File.Open("abc.xls", FileMode.Open, FileAccess.Read); 

我使用Visual Studio 2010的高級版,Windows 7的

什麼可以是可能的原因是什麼?要麼它應該拋出異常或只是運行良好。爲什麼該程序只是掛起,在此之後從未到達下一行代碼?

在此先感謝:)

+0

abc.xls文件有多大。你也有嘗試趕上嗎? – Jethro

回答

1

可能的原因可能是文件的大小,它有多大?

+0

不傻我。看起來文件已經打開。所以這個程序就被吊死了。只要我關閉文件,它就會完美運行。但爲什麼程序在閱讀時有問題,如果它已經打開? – Jaggu

+0

因爲它無法獲得對該文件的訪問權限。該文件正在被另一個進程 – saj

+1

@Bob使用,這很可能是因爲該文件被鎖定。首先檢查文件是否被鎖定。 http://stackoverflow.com/questions/1304/how-to-check-for-file-lock-in-c – Jethro

1

這個相同的文件可以與其他應用程序打開罰款嗎?它是否在網絡或任何其他可能導致延遲的特殊驅動器上?你確定這是一行代碼塊嗎(調試器有時候是一條線路)?

注意:與給出的其他答案相反,我認爲在打開流時,大小不應該對性能產生任何影響。它實際上並沒有閱讀或做任何事情,只是打開文件。