解压文件时,文件正在被使用

问题描述

解压操作从远程服务器下载数据,将数据解压到本地服务器(访问量上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();}}

解决方案

解决方案二:
每个打开的对像、变量及时关闭,不要使用静态变量。

时间: 2024-09-20 00:48:43

解压文件时,文件正在被使用的相关文章

PHP 的解压缩ZipArchive中的extractTo()方法 LINUX+nginx环境中解压zip时文件丢失的问题

    在项目中要用ZipArchive解压ZIP文件,起初测试环境在WINDOWS平台中,测试通过,换到 LINUX+nginx 的环境中时 就出问题了(ZIP包中有文件和文件夹一共3百多个文件,大部分是带汉字的文件名),问题的现象是:不带汉字的文件解压没有问题,另外有部分带汉字和数字字母的文件解压没有问题,然后其他纯文字的文件名就丢失了,也没有报错,最后把问题定位到了extractTo()方法,这个方法尼玛是个封装的方法,看不到实际的源代码.       但是,发现 for($i = 0;

解压rabbitmq安装文件出错问题

解压.tar.gz文件时,出现了:   gzip: stdin: not in gzip format   tar: Child returned status 1   tar: Error exit delayed from previous errors     解决办法:  tar -xf  filename.tar.gz 或者tar -xvf filename.tar.gz 都能够解压成功.  下面是选项的含义:  bz2格式用j gz格式用z c是创建 x是解压缩 v是详细信息 f是指

Win8/8.1下通过dism命令解压install.wim文件步骤

  平时我们解压文件都是通过第三方工具,例如WinRAR等.但在Win8/8.1系统中使用install.wim文件解压时会出现文件损坏的错误提示,这是由于这些解压工具还不支持这种格式,这时我们就可以通过dism命令来解压文件. 步骤如下: 一.检查镜像版本: 镜像中包含多个版本,需要确认自己需要的版本,我的镜像路径是"F:win8.1sourcesinstall.wim",则执行下面命令: dism /get-wiminfo /wimfile:"F:win8.1source

spss modeler-Spss modeler,解压得到Iservrc文件,怎么安装,求助

问题描述 Spss modeler,解压得到Iservrc文件,怎么安装,求助 解决方案 SPSS中安装PLS,成功安装!

解决解压tar.gz文件报错gzip: stdin: not in gzip format错误

在解压tar.gz文件的时候报错 [Sun@localhost Downloads]$ tar -zxvf clion-141.351.4.tar.gz   gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now 原来原因是这个压缩包没有用gzip格式压缩,所以不用加z指令 [Sun@localhost Downloads]$ tar -xvf

xp系统下如何解压.tar.gz文件?

问题描述 xp系统下如何解压.tar.gz文件? 解决方案 解决方案二:这是Linux下面的压缩文件,不过在XP下也可以使用WinRAR解压解决方案三:我知道.不知道的是如何在xp下用winrar解压??右键没有解压选项.若回答请回答详细些,提问前我也是百度谷歌很久的,没解决掉才来这求高手的解决方案四:www.haozip.com好压可以解压此文件格式 ----------------------------------签----------名----------栏---------------

Python实现压缩与解压gzip大文件的方法_python

本文实例讲述了Python实现压缩与解压gzip大文件的方法.分享给大家供大家参考,具体如下: #encoding=utf-8 #author: walker #date: 2015-10-26 #summary: 测试gzip压缩/解压文件 import gzip BufSize = 1024*8 def gZipFile(src, dst): fin = open(src, 'rb') fout = gzip.open(dst, 'wb') in2out(fin, fout) def gun

python用模块zlib压缩与解压字符串和文件的方法_python

python中zlib模块是用来压缩或者解压缩数据,以便保存和传输.它是其他压缩工具的基础.下面来一起看看python用模块zlib压缩与解压字符串和文件的方法.话不多说,直接来看示例代码. 例子1:压缩与解压字符串 import zlib message = 'abcd1234' compressed = zlib.compress(message) decompressed = zlib.decompress(compressed) print 'original:', repr(messa

C#利用SharpZipLib解压或压缩文件夹实例操作

最近要做一个项目涉及到C#中压缩与解压缩的问题的解决方法,大家分享. 这里主要解决文件夹包含文件夹的解压缩问题. )下载SharpZipLib.dll,在http://www.icsharpcode.net/OpenSource/SharpZipLib/Download.aspx中有最新免费版本,"Assemblies for .NET 1.1, .NET 2.0, .NET CF 1.0, .NET CF 2.0: Download [297 KB] "点击Download可以下载,

C#解压或压缩文件夹

C#解压或压缩文件夹 最近要做一个项目涉及到C#中压缩与解压缩的问题的解决方法,大家分享. 这里主要解决文件夹包含文件夹的解压缩问题.1)下载SharpZipLib.dll,在http://www.icsharpcode.net/OpenSource/SharpZipLib/Download.aspx中有最新免费版本,"Assembliesfor.NET1.1,.NET2.0,.NETCF1.0,.NETCF2.0:Download[297KB]"点击Download可以下载,解压后里