在Windows C#中找不到文件异常



当我第一次打开一个文件,读取其内容并保存它时,应用程序运行良好。但当我再次打开同一个文件时,我会得到一个文件未找到异常。如何刷新流?

FileStream usrFs = null;
try
{
    usrFs = new FileStream(xmlSource, FileMode.Open, FileAccess.Read,
    FileShare.ReadWrite);
}
catch (IOException)
{
    MessageBox.Show("File not found in the specified path");
}

XML

<?xml version="1.0"?>
<MenuItem BasePath="c:SampleApplication">

堆栈跟踪

at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)    
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)    
at SampleApplication.MainForm.ProcessDocument(BackgroundWorker worker, DoWorkEventArgs e) in C:Users273714DesktopCRAFTLite - VSTSSampleApplicationMainForm.cs:line 179

你可以试试这个:

    using (FileStream usrFs = new FileStream(xmlSource, FileMode.Open, 
      FileAccess.Read, FileShare.ReadWrite) 
     {
       ... 
     }

您得到的IOException可能是由许多问题引起的。如果要检查未找到的文件,则应检查System.IO.FileNotFoundException。如果没有任何额外的信息,很难准确地说出问题的原因。

一个问题是当前您没有关闭文件流。您需要在finally方法中调用usrFs.Close()。或者更好的是,使用using关键字来确保文件已关闭。

using( var usrFs = new FileStream(xmlSource, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) )
{
    // do things here
}
// usrFs is closed here, regardless of any exceptions.

读取文件后,当您完成读取或写入时,closefilestream。。。

finally
{
   fileStream.Close();
}

IOEXCEPTIONS将是不同类型的,您只是显示未找到文件的消息。在您的情况下,异常将而不是是找不到文件。。。它将是file already open by another process

相关内容

  • 没有找到相关文章

最新更新