2 u011954277 u011954277 于 2015.07.24 12:00 提问

c# 解压文件的 解压之后没有存进数据库 没有看的解压之后 文件
   Stream stream = HttpContext.Current.Request.InputStream;
            account = HttpContext.Current.Request.Params["Account"];
            if (account == null || account == "")
            {
                account = "unknown";
            }
            desZipFilePrefix = ServiceHelp.getDesZipFileName(account);
            fileSuffixNme = ".rar";
            //读取文件流将文件保存到服务器的特定目录下
            compressFilePath = OperateZipFile.writeCompressFile(stream, desZipFilePrefix + fileSuffixNme);
            if (Directory.Exists(System.Web.HttpContext.Current.Server.MapPath("DesFile")) == false)
            {
                Directory.CreateDirectory(System.Web.HttpContext.Current.Server.MapPath("DesFile"));
            }
            deCompressFilePath = Path.Combine(System.Web.HttpContext.Current.Server.MapPath("DesFile"), desZipFilePrefix);
            OperateZipFile.UnRar(deCompressFilePath, compressFilePath, desZipFilePrefix + fileSuffixNme);

            //解析shapefile文件
            FeatureShapeFileParse featureShapeFileParse = new FeatureShapeFileParse();
            featureShapeFileParse.filePathForShp = featureShapeFileParse.getShpPath(deCompressFilePath);
            featureShapeFileParse.filePathForShx = featureShapeFileParse.getShxPath(deCompressFilePath);
            featureShapeFileParse.filePathForDbf = featureShapeFileParse.getDbfPath(deCompressFilePath);
            List<ShpFileData> shpFileDataList = featureShapeFileParse.readShpFile();
           List<DbfFileData> dbfFileDataList = featureShapeFileParse.readDbfile();

           if (dbfFileDataList == null)
           {
               new Normal_AdminlogsDAL().SaveMapServiceLog(" 解压失败,或者文件为空");
               return;
           }

            SurveyFeatureAddRequest surveyFeatureAddRequest = getSurveyFeatureAddRequest(shpFileDataList, dbfFileDataList);

           string featureSql = string.Format(" INSERT INTO [PRO_PollingCheckLog]([P_ProID],[P_UserID],[P_CheckLogName],[P_StartTime],[P_EndTime],[P_Attributes],[P_LayerName],[P_FeatureName],[P_PicURI],[P_MediaURI],[P_Note],[P_StatusID],[P_CreateUserName],[P_CreateTime]) VALUES ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}',getdate() ) ;", 
                surveyFeatureAddRequest.ProjectID, surveyFeatureAddRequest.SysUserId, surveyFeatureAddRequest.ProjectName, surveyFeatureAddRequest.SurveyTime, surveyFeatureAddRequest.SurveyTime, 
                surveyFeatureAddRequest.Attributes, surveyFeatureAddRequest.LayerName, surveyFeatureAddRequest.FeatureName, surveyFeatureAddRequest.PicURI, surveyFeatureAddRequest.MediaURI, surveyFeatureAddRequest.Note, 
                1, account);

            int exerst = new SurveyFeatureDAL().InsertSurveyFeature(featureSql);
            if (exerst > 0)
            {
                //删除解压后的临时文件
                deleteTempFile();
                //记录用户操作日志
                //new Normal_AdminlogsDAL().SaveLog(surveyFeatureAddRequest.SysUserId.ToString(), "项目名称:" + surveyFeatureAddRequest.ProjectName + ",关联地物信息已经上传成功。");
            }
            else {
                new Normal_AdminlogsDAL().SaveMapServiceLog("插入失败");//Test
 dbfFileDataList 总是等 null   

4个回答

caozhy
caozhy   Ds   Rxr 2015.07.24 12:42
已采纳

你的压缩文件是什么类型,单独执行解压缩是否正确,或者报什么错误。

caozhy
caozhy 回复小菜来袭: 你用的是.net什么版本,以及你解压的是zip么?如果是4.5+,可以用.net内置的system.io.compress库
2 年多之前 回复
u011954277
u011954277 OperateZipFile.UnRar("d:\\","d:\\","1.rar"); 把路径这样写了 解压又是可以的 实在搞不定那里错了
2 年多之前 回复
u011954277
u011954277 压缩包里面有文件 但是经过这段代码解压之后 压缩包变成一个文件夹里面 文件没有了 应该是解压的时候 出问题了 但是又没有报错出来
2 年多之前 回复
caozhy
caozhy 回复小菜来袭: 你是说解压出来的文件夹不包括压缩包的文件,还是压缩包中的文件本身丢失了
2 年多之前 回复
u011954277
u011954277 单独压缩 是可以的 不过在这里解压之后 压缩包里面的文件不见了 记录不会存进数据库 dbfFileDataList=null
2 年多之前 回复
CSDNXIAOD
CSDNXIAOD   2015.07.24 12:03

c# 压缩解压文件
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

oyljerry
oyljerry   Ds   Rxr 2015.07.24 12:30

OperateZipFile.UnRar 调用失败了
估计你传入的参数格式可能不正确等,所以失败了

oyljerry
oyljerry 回复小菜来袭: OperateZipFile.UnRar("d:\\","d:\\","1.rar"); 实际的解压命令也打印一下出来看看,对比一下
2 年多之前 回复
u011954277
u011954277 UnRar 没有报错 只是dbfFileDataList 总是等 null
2 年多之前 回复
qq_30081817
qq_30081817   2015.07.24 12:43

应该是参数不正确。。。。。。。

Csdn user default icon
上传中...
上传图片
插入图片