先用saveas存到了web服务器上,接着用StreamReader读取提示如下错误:
"该进程无法访问文件“E:/XX/XXXXXXXXX/XXX/XXX/xxx.txt”,因为该文件正由另一进程使用。"
请问该如何解决!!! 

解决方案 »

  1.   

    saveas后跳到另一页,再读取文件。
      

  2.   

    保存到文件夹下还需要StreamReader吗?试试将E:/XX/XXXXXXXXX/XXX/XXX文件夹的权限全部放开。
    如果NTFS的格式,需要放开权限,FAT32格式的可能不用。
      

  3.   

    string mydirectory =  System.AppDomain.CurrentDomain.BaseDirectory+"cluster_temp/";
    if (!Directory.Exists(mydirectory))
    {
       Directory.CreateDirectory(mydirectory);
    }
    filepath = mydirectory+Path.GetFileName(txtAccountFile.PostedFile.FileName);
    txtAccountFile.PostedFile.SaveAs(filepath);
    StreamReader sr = new StreamReader(filepath, System.Text.Encoding.Default);
    到这里就出错了!
      

  4.   

    将上次调试的时候用完;StreamReader要关闭.
    用异常
    try
    {
       ...;  //往服务器存储文件代码.
    }
    catch
    {
       StreamReader.Close();
       StreamReader.Dispose();
    }否则,内存中产生空指针。如果已经产生了内存空指针.可以用以下两种方法将它们强制关闭
    1.
    按:
    Ctrl+Shift+Esc 打开进程管理器将进程关闭掉
    2.
    2.执行代码杀死进程
      '杀死Excel进程
            Dim myproc As System.Diagnostics.Process = New System.Diagnostics.Process
            Dim proc As Process
            Dim procs() As Process = Process.GetProcessesByName("进程名称")   '得到所有打开的进程
            Try
                For Each proc In procs
                    If Not proc.CloseMainWindow() Then
                        proc.Kill()
                    End If
                Next
            Catch
            End Try
      

  5.   

    为什么刚保存,就要读?我想可能是SaveAs是没有操作完,造成的.
      

  6.   

    StreamReader.Dispose();???
    好像没有Dispose()的方法吧,只有close(),可是我close以后还是同样的错误!
      

  7.   

    上传的文件应当用server.MapPath(pathName) 'pathname相对路径.如果用绝对路径上传服务器后有很多问题!txtAccountFile.PostedFile.SaveAs(server.MapPath(pathName)); 对于你的问题,是因为你刚存入没有关闭的原因.HttpPostedFile 没有CLOSE好像...加入这句试试,用FILE打开再关:Dim fs = File.Open(path, FileMode.Open, FileAccess.Read)fs.close()FILE类的使用方法,http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpref/html/frlrfsystemiofileclassopentopic.asp