2011-07-14 3 views
1

Je n'ai jamais rencontré ce problème. Quelqu'un peut-il me dire pourquoi ce code juste accrocher et accrochez toujours:File.Open se bloque et ne fait rien

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

J'utilise Visual Studio 2010 Premium Edition, Windows 7.

Quelles peuvent être les causes possibles? Soit il devrait lancer une exception ou juste fonctionner correctement. Pourquoi le programme se bloque-t-il et n'atteint jamais la prochaine ligne de code après cela?

Merci à l'avance :)

+0

Quelle est la taille du fichier abc.xls. Aussi avez-vous cela dans un essai d'attraper? – Jethro

Répondre

1

Une cause possible pourrait être la taille du fichier, la taille est-il?

+0

Non, je suis bête. Il semble que le fichier était ouvert. Donc, le programme vient de pendre. Dès que je ferme le fichier, il fonctionne parfaitement. Mais pourquoi le programme a-t-il un problème en lisant s'il est déjà ouvert? – Jaggu

+0

Parce qu'il ne peut pas obtenir l'accès au fichier. Le fichier est utilisé par un autre processus – saj

+1

@Bob, c'est probablement parce que le fichier est verrouillé. Vérifiez d'abord si le fichier est verrouillé. http://stackoverflow.com/questions/1304/how-to-check-for-file-lock-in-c – Jethro

1

Ce même fichier peut-il être ouvert correctement avec d'autres applications? Est-ce sur un réseau ou tout autre type de lecteur spécial qui peut causer un retard? Êtes-vous sûr que c'est cette ligne qui bloque (le débogueur est parfois une ligne)?

Note: Contrairement à l'autre réponse donnée, je crois que la taille ne devrait pas avoir d'impact sur les performances lors de l'ouverture d'un flux. Il ne lit ou ne fait rien d'autre que d'ouvrir le fichier.