StreamReader sr;
sr = File.OpenText(@"c:\system.log");
...该进程无法访问文件“c:\system.log”,因为该文件正由另一进程使用。 
该文件确实正由另一进程使用,如何读取?

解决方案 »

  1.   

    在catch中复制这个文件到临时文件夹(如:c:\windows\temp\temp.txt),然后再打开它...\temp.txt
      

  2.   

    对,复制一个副本,用完了再kill掉
      

  3.   

    如果只是读取得话,不用这么麻烦吧?
    以只读的方式打开不就可以了么?
    File.OpenRead
    不行么?
      

  4.   

    有没有人说说具体怎么用GUID来实现?
      

  5.   

    GUID是一组不重复的编码。其实文件名可采用
    DateTime.Now.Tostring("yyyy_MM_dd_ss") + (System.IO.Directory.GetFiles("临时文件夹").Length + 1).Tostring() + ".txt" 
    来避免文件名重复的问题。也可以在Copy时设 改写目标文件 overwrite = true
      

  6.   

    我有一个进程是要写日志的.
    难道必须要复制日志文件才能读取吗.其实此时这个文件可以用NotePad打开的,当用File.OpenText却不能,奇怪.