# .Net en Gesluite Lêers...

<datetime class="hidden">2004-02-20T00:00</datetime>

<!-- category -- mostlylucidcouk, Imported, .NET, C# -->
OK, kan iemand uitleggen waarom ik het niet uitdrukkelijk kan checken of ik een lêer kan sluiten voordat ik eruit lees (iM SK3e\., check dat niemand anders de lêer sluit voordat hij eruit probeert te lezen [FileSystemWatcher](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemiofilesystemwatcherclasstopic.asp) om te wachten tot files in een gids worden gecreëerd voordat je een taak activeert - goed, maar er lijkt geen makkelijke manier te zijn om te controleren of een lêer is 'leesbaar' voordat je begint te lezen. [FileStream](http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemIOFileStreamClassTopic.asp) en de fout die het gooit als de lêer door een ander proces gesluit wordt.

```
        private static int m_ReadAttempts = 0;
        private string  ReadFileFromDisk(string filePath)
        {
            try
            {
                if(!File.Exists(filePath))
                {
                    MessageBox.Show("Sorry, but the file specified " + Environment.NewLine + filePath + Environment.NewLine + "Cannot be found");
                    return string.Empty;
                }
            using(FileStream fs = new FileStream(filePath,FileMode.Open,FileAccess.Read,FileShare.Read))
                {
                        using(StreamReader sr = new StreamReader(fs)) 
                        {
                            string tmpStr = sr.ReadToEnd();
                            sr.Close();
                            m_ReadAttempts =0;
                            return tmpStr;
                        }
                
                }        
            }
            catch(IOException ex)
            {
                    if(m_ReadAttempts < 10)
                {
                    Thread.Sleep(500);
                    m_ReadAttempts++;
                    return ReadFileFromDisk(filePath);
                }
                else
                {
                    throw ex;
                }
            }
        }
```