I have Following Code in a Page_Load called function. When the Page is loaded the first time after starting Visual Studio, everything works out fine.
But any other opening call to the File after that returns IOException: "File is in use by another process", even when directly opening the File in VisualStudio Solution this Error is returned(of course not as Exception)
FileStream mailinglist_FileStream = new FileStream(@"\foobarFile.txt", FileMode.Open);
PeekingStreamReader mailinglist_Reader = new PeekingStreamReader(mailinglist_FileStream);
//Do some stuff with the file
mailinglist_FileStream.Close();
mailinglist_Reader.Close();
mailinglist_Reader.Dispose();
mailinglist_FileStream.Dispose();
Why is the file still locked? and why does fully restarting Visual Studio reset the File?
when checking file-Properties it says:
Build Action: Content
Copy to output directory: do not Copy
I am only reading this File. can i do something similiar to adLockOptimistic, so that multiple processes can access the File?
About "why fully restarting Visual Studio […]": because you may be using IIS Express or ASP.NET Dev Server whose are closed when you close the IDE, so locks on files are released since the process holding the locks is no longer running.
And about "why is the file still locked?[…]" it could be because the file stream isn’t closed because sometimes the thread may not end successfully and the locks aren’t released.
As other answer said, check how
usingblock may avoid thatIDisposableobjects wouldn’t be disposed:Yes, take a look at
File.Openmethod andFileShareenumeration:File.Open: http://msdn.microsoft.com/en-us/library/y973b725.aspxFileShareenum: http://msdn.microsoft.com/en-us/library/system.io.fileshare.aspx