2011-07-14 38 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

这个相同的文件可以与其他应用程序打开罚款吗?它是否在网络或任何其他可能导致延迟的特殊驱动器上?你确定这是一行代码块吗(调试器有时候是一条线路)?

注意:与给出的其他答案相反,我认为在打开流时,大小不应该对性能产生任何影响。它实际上并没有阅读或做任何事情,只是打开文件。