问题描述
解压操作从远程服务器下载数据,将数据解压到本地服务器(访问量上10W服务器)中.本地测试通过,而上服务器上运行就出现以下错误:-------------------------------------------------------------------------------------------------[2007-12-1112:59:57]Exception异常:System.IO.IOException:Theprocesscannotaccessthefile'D:web123.html'becauseitisbeingusedbyanotherprocess.atSystem.IO.__Error.WinIOError(Int32errorCode,StringmaybeFullPath)atSystem.IO.FileStream.Init(Stringpath,FileModemode,FileAccessaccess,Int32rights,BooleanuseRights,FileShareshare,Int32bufferSize,FileOptionsoptions,SECURITY_ATTRIBUTESsecAttrs,StringmsgPath,BooleanbFromProxy)atSystem.IO.FileStream..ctor(Stringpath,FileModemode,FileAccessaccess,FileShareshare,Int32bufferSize,FileOptionsoptions)atSystem.IO.File.Create(Stringpath)----------------------------------------------------------------------------------------------这个错误有时出现,有时不出现...请高手指点一下..........或有好的解决方案说一下以下是解压代码:///<summary>解压文件</summary>///<paramname="file">压缩文件的名称,如:C:123123.zip</param>///<paramname="dir">dir要解压的文件夹路径</param>///<returns></returns>publicstaticboolUnpPackFiles(stringfile,stringdir){if(!File.Exists(file))returnfalse;dir=dir.Replace("/","\");if(!dir.EndsWith("\"))dir+="\";if(!Directory.Exists(dir))//主文件夹Directory.CreateDirectory(dir);ZipInputStreams=newZipInputStream(File.OpenRead(file));try{ZipEntrytheEntry;while((theEntry=s.GetNextEntry())!=null){stringdirectoryName=Path.GetDirectoryName(theEntry.Name);stringfileName=Path.GetFileName(theEntry.Name);if(directoryName!=String.Empty)Directory.CreateDirectory(dir+directoryName);if(fileName!=String.Empty){FileStreamstreamWriter=null;try{streamWriter=File.Create(dir+theEntry.Name);intsize=2048;byte[]data=newbyte[2048];while(true){size=s.Read(data,0,data.Length);if(size>0){streamWriter.Write(data,0,size);}else{break;}}}catch(Exceptionex){WriteLog("Exception异常:"+ex.ToString());}finally{if(streamWriter!=null)streamWriter.Close();}}}returntrue;}catch(Exceptionex){WriteLog("异常:"+ex.ToString());returnfalse;}finally{if(s!=null)s.Close();}}
解决方案
解决方案二:
每个打开的对像、变量及时关闭,不要使用静态变量。