精华内容
下载资源
问答
  • PHP操作ZIP压缩包文件的基本方法大家应该都知道怎么做(如不了解可在本文底部学习PHP操作ZIP的基本方法),那么如何在不解压的情况下直接读取压缩包中的文件呢,如直接在页面中显示压缩包中的图片? 下面就给大家演示...
  • 易语言取压缩包中的文件列表源码,取压缩包中的文件列表,取压缩包文件列表,取短文件名,CreateProcess,CreatePipe,ReadFile,CloseHandle,PeekNamedPipe,GetExitCodeProcess,GetShortPathName
  • Java提取压缩包中的文件,文件操作的范畴,操作对象为ZIP格式的压缩文件,将从ZIP中提取出BMP图像文件,要将从压缩包中提取文件,必须先解压压缩包,然后将指定文件拷贝出来,代码中先实现了对zip文件的解压,然后...
  • 以下代码是直接从我的项目下抽取的,实现的:读取压缩包中的treeJson.json文件,将该 文件的flag和当前传入参数flag作匹配。/** * * Function:针对于压缩包,在不解压情况下直接读取文件内容 * error 异常 ...

    以下代码是直接从我的项目下抽取的,实现的:读取压缩包中的treeJson.json文件,将该 文件的flag和当前传入参数flag作匹配。

    /**
         * 
         * Function:针对于压缩包,在不解压情况下直接读取文件内容
         * error 异常 压缩包本身格式有问题
         * @author
         */
        private String readZipFile(File  file,String bidId,String otbId,String flag) throws Exception {
            String isSuc = "1";
            try {
                ZipFile zf = new ZipFile(file,Charset.forName("gbk"));
                Enumeration<ZipEntry> entries = (Enumeration<ZipEntry>) zf.entries();  
                ZipEntry ze;  
                while (entries.hasMoreElements()) {  
                    ze = entries.nextElement(); 
                    if (ze.isDirectory()) {
                        continue;
                    } else { 
                        if(ze.getName()!=null && ze.getName().endsWith("treeJson.json")){
                            System.err.println("file - " + ze.getName() + " : "  
                                    + ze.getSize() + " bytes");  
                            long size = ze.getSize();  
                            if (size > 0) {  
                                BufferedReader br = new BufferedReader(  
                                        new InputStreamReader(zf.getInputStream(ze),"UTF-8"));  
                                String line;  
                                while ((line = br.readLine()) != null) { 
                                    org.json.JSONObject json = new org.json.JSONObject(line);
                                    if(flag != null ){
                                        if(json.isNull("flag")){
                                            isSuc = "-03";
                                        }else{
                                            if (flag.equals(json.getString("flag"))){
                                                if(bidId!=null && bidId.equals(json.getString("sectionId"))){
                                                    if(otbId!=null && !otbId.equals(json.getString("mainId"))){
                                                        isSuc = "-1";//上传压缩文件不属于当前开标记录
                                                    }
                                                }else{
                                                    //上传压缩文件不属于当前标段
                                                    isSuc = "-2";
                                                }
                                            }else if(flag.equals("openTender")){
                                                isSuc = "-01";
                                            }else if(flag.equals("bidEval")){
                                                isSuc = "-02";
                                            }
                                        }
                                    }
                                }  
                                br.close();  
                            }  
                            break;
                        }
                    }  
                }  
                return isSuc;
            } catch (Exception e) {
                e.printStackTrace();
                return "error";
            }
        }  
    展开全文
  • @Transactional(rollbackFor = BusinessException.class) public JsonResult>> checkApplyOfflineHearData(String caseIds, MultipartFile multipartfile, ... } 代码红色标注部分为主要获取压缩包附件代码
    @Transactional(rollbackFor = BusinessException.class)
    public JsonResult<List<Map<String,Object>>> checkApplyOfflineHearData(String caseIds, MultipartFile multipartfile, HttpServletRequest request, String applyReason) throws BusinessException {
        JsonResult<List<Map<String,Object>>> jsonResult = new JsonResult<>();
        jsonResult.setFlag(false);
        Map<String,Object> params = new HashMap<>();
        params.put("caseIds",caseIds);
        List<ApplyOfflineHear> applyOfflineHearByCaseIds = applyOfflineHearMapper.findApplyOfflineHearByCaseIds(params);
        if(CollectionUtil.isNotBlank(applyOfflineHearByCaseIds)){
            List<String> ids = new ArrayList<>();
            for(ApplyOfflineHear applyOfflineHear : applyOfflineHearByCaseIds){
                ids.add(applyOfflineHear.getCaseId()+"");
            }
            jsonResult.setMessage("异常的数据编号为。"+String.join(",",ids));
            return jsonResult;
        }
        List<Map<String, Object>> casesMaps = applyOfflineHearMapper.findCasesByCaseIds(params);
        if(CollectionUtil.isBlank(casesMaps)){
            jsonResult.setMessage("参数异常");
            return jsonResult;
        }
        if(multipartfile == null ){
            jsonResult.setSuccessData(casesMaps);
            return jsonResult;
        }else{
            String extension = FilenameUtils.getExtension(multipartfile.getOriginalFilename()).toLowerCase();
            if (StringUtils.isBlank(extension)) {
                throw new BusinessException(ErrorEnum.ERROR_PARAM, "无法识别的文件类型");
            }
            if(!"zip".equals(extension)){
                throw new BusinessException(ErrorEnum.ERROR_PARAM,"请上传zip压缩包");
            }
            Map<String,Map<String,Object>> maps = new HashMap<>();
            for(Map<String,Object> obj : casesMaps){
                maps.put(obj.get("code").toString(),obj);
            }
            try {
                List<ApplyOfflineHear> list = new ArrayList<>();
                List<Map<String,Object>> result = new ArrayList<>();
                //上传到临时文件
                File fileToFile = FileVerifyUtil.multipartFileToFile(request, multipartfile);
                Charset gbk = Charset.forName("GBK");
                ZipFile zip = new ZipFile(fileToFile, gbk);
                String filePackage = null;
                for (Enumeration entries = zip.entries(); entries.hasMoreElements();) {
                    ZipEntry entry = (ZipEntry) entries.nextElement();
                    String zipEntryName = entry.getName();
                    InputStream in = zip.getInputStream(entry);
                    String[] split = zipEntryName.split("/");
                    if(ZipUtils.getSubCount(zipEntryName,"/")!=1) {
                        System.out.println("一级目录-------------->"+zipEntryName);
                        continue;
                    }
                    if(split.length == 2){
                        String fileName = split[1].substring(0,split[1].indexOf("."));
                        String fileNameNew = split[1];
                        if(maps.get(fileName) != null && maps.get(fileName).size()>0){
                            byte[] bytes = FileVerifyUtil.readInputStream(in);
                            FileObject fileObject = new FileObject(fileNameNew, bytes);
                            String fileId = fileService.uploadFile(null, fileObject);
                            ApplyOfflineHear applyOfflineHear = new ApplyOfflineHear();
                            applyOfflineHear.setCreateTime(new Date());
                            applyOfflineHear.setState(0);
                            applyOfflineHear.setApplyReason(applyReason);
                            applyOfflineHear.setFileId(Integer.valueOf(fileId));
                            applyOfflineHear.setCaseId(Integer.valueOf(maps.get(fileName).get("id").toString()));
                            list.add(applyOfflineHear);
                            maps.remove(fileName);
                        }
                    }
                }
                if(maps.size() < 1){
                    for(ApplyOfflineHear applyOfflineHear : list){
                        applyOfflineHear.setState(3);
                    }
                    if(CollectionUtil.isNotBlank(list)){
                        // 批量插入
                        applyOfflineHearMapper.butchInsertApplyOfflineHear(list);
                    }
                    jsonResult.setFlag(true);
                }else{
                    if(CollectionUtil.isNotBlank(list)){
                        // 批量插入
                        applyOfflineHearMapper.butchInsertApplyOfflineHear(list);
                    }
                    for (Map.Entry<String,Map<String,Object>> entry : maps.entrySet()){
                        result.add(entry.getValue());
                    }
                    jsonResult.setSuccessData(result);
                    //jsonResult.setFlag(false);    // 当false的时候 要检查data中是否有数据,如果有数据则在列表中展示。
                }
            }catch (Exception e){
                logger.info("批量转线下审理申请附件校验异常----"+e);
                throw new BusinessException(ErrorEnum.ERROR_SYSTEM,"系统异常");
    
            }
        }
        return jsonResult;
    }
    

    代码中红色标注的部分为主要获取压缩包附件的代码

    展开全文
  • delphi里如何不解压就能获取压缩包中的文件名称或修改时间,zip的压缩包
  • 要么解压超慢要么就内存溢出程序崩溃),后来放弃解压,直接从压缩包中读取文件,下面将方法整理如下通过ZipFile.getEntry(“文件名”)方法获取来获取压缩包中的指定文件对象public static void readZipFile...

    最近做的一个Android项目中,需要将一个有20W份html文件的压缩包下载到本地,解压后在本地浏览;在解压的时候尝试了很多方法都无法完成解压(文件数量太大,要么解压超慢要么就内存溢出程序崩溃),后来放弃解压,直接从压缩包中读取文件,下面将方法整理如下


    • 通过ZipFile.getEntry(“文件名”)方法获取来获取压缩包中的指定文件对象

      public static void readZipFile(String file,String fileName) throws Exception {  
          ZipFile zf = new ZipFile(file);
          ZipEntry ze = zf.getEntry(fileName);
          InputStream in = zf.getInputStream(ze);
          BufferedReader br = new BufferedReader(new InputStreamReader(in));
          String line;
          StringBuffer result = new StringBuffer();
          while ((line = br.readLine()) != null) {  
              result.append(line+"\n");
          }
          System.out.println(result);
      }
      

      在上面的方法中,只要指定压缩包路径(file)以及压缩包中指定的文件名称(fileName),就可以读取到该html文件中的内容

    • 接下来我们对上面的方法进行改造,将指定文件从压缩包中读取出来并写入到指定的目录下,以便于在Android项目中进行查看

      /**
        * 
        * @param file 压缩包路径
        * @param saveRootDirectory 写入文件夹路径
        * @param fileName 文件名
        * @throws FileNotFoundException
        * @throws IOException
        */public static void writeZipFile(String file,String saveRootDirectory,String fileName) throws FileNotFoundException, IOException {
          int len = 0;
          ZipFile zf = new ZipFile(file);
          ZipEntry ze = zf.getEntry(fileName);
          InputStream read = zf.getInputStream(ze);
          File writeFile = new File(saveRootDirectory + fileName);
          if (!writeFile.exists()) {  
              File rootDirectoryFile = new File(saveRootDirectory);  
              //创建目录  if (!rootDirectoryFile.exists()) {  
                  rootDirectoryFile.mkdirs();  
              } 
              //创建文件  
              writeFile.createNewFile();
      
              BufferedOutputStream write = new BufferedOutputStream(new FileOutputStream(file));
              //写入文件内容while ((len = read.read()) != -1) {
                  write.write(len);
              }
              write.flush();  
              write.close();  
          }
          read.close();  
      }
      

      调用writeZipFile方法,将指定的文件(fileName)从压缩包(file)中读取出来后并写入到指定的文件夹(saveRootDirectory)下,通过WebView.loadUrl("file:///saveRootDirectory/fileName")实现html文件的查看,通过这种方式,我们避免了在移动端解压大文件时长时间的等待、甚至是导致程序崩溃这种不好的用户体验,需要查看某个文件从压缩包中读取即可。






    展开全文
  • 从zip压缩包中提取文件中的关键字

    千次阅读 2018-11-05 11:59:16
    本文目的是从zip压缩包中获取各个文件中内容,然后从中查找关键字,将包含关键字文件目录打印出来。 package com.spider.readzip; import java.io.BufferedInputStream; import java.io.BufferedReader; import...

    本文目的是从zip压缩包中获取各个文件中内容,然后从中查找关键字,将包含关键字的文件目录打印出来。

    package com.spider.readzip;
    
    import java.io.BufferedInputStream;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipException;
    import java.util.zip.ZipFile;
    import java.util.zip.ZipInputStream;
    
    import org.junit.Test;
    
    public class Readzip {
    
    	@Test
    	public void read() {
    		try {
    
    			File file = new File("C:\\Users\\zhangsan\\Desktop\\11.zip");
    			StringBuffer context = new StringBuffer();
    			String keyword = "password-username";
    			ZipFile zipFile = new ZipFile(file);
    
    			InputStream in = new BufferedInputStream(new FileInputStream(file));
    			ZipInputStream zipInputStream = new ZipInputStream(in);
    			ZipEntry zipEntry;
    
    			while ((zipEntry = zipInputStream.getNextEntry()) != null) {
    				BufferedReader br = new BufferedReader(new InputStreamReader(zipFile.getInputStream(zipEntry)));
    				String line;
    				while ((line = br.readLine()) != null) {
    					context.append(line);
    				}
    
    				String[] keys = keyword.split("-");
    				String path = null;
    
    				for (int i = 0; i < keys.length; i++) {
    					if ((context.toString()).contains(keys[i])) {
    
    						path = file.getAbsolutePath() + zipEntry.getName();
    
    					}
    				}
    				System.out.println("文件路径是:" + path + "内容是:" + context + "包含的关键字是:" + keyword);
    
    			}
    
    		} catch (ZipException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    
    	}
    }
    

    其中压缩包文件按照文件代码中的文件路径名称自行创建即可。

    展开全文
  • 今天重新安装pycharm时从官网重新下了一个安装包,在拖动到vmware虚拟机时发现有文件缺失问题,原本370多M文件传过去只有9M。且压缩包变成红色 ...替代过程注意压缩包大小,正常了在替换。 ...
  • 不解压情况下查看压缩包中的文件的内容 [root@node0 efc]# zgrep --binary-files=text 'complete' database-2019-07-15_2044.tar.gz -- PostgreSQL database dump complete [root@node0 efc]# ...
  • 压缩包中的Word文档无法自动更新(转) 当压缩包(rar或zip)中的某一文件需要修改时,我们一般都是在打开压缩包之后,用鼠标双击要修改的文件,这时系统会自动调用关联程序将其打开,在修改完毕之后,保存该文件,...
  • java获取zip压缩包中的文件名称

    千次阅读 2019-07-23 15:32:13
    import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipFile; import java.io.File;...//fileDir 是压缩包的绝对路径(包含压缩包名称) ZipFile zipFile=new ZipFile(fileDir); String ...
  • 不解压直接读取压缩包中的文件 https://www.cnblogs.com/jeffen/p/6931199.html 最近做的一个Android项目中,需要将一个有20W份html文件的压缩包下载到本地,解压后在本地浏览;在解压的时候尝试了很多方法都无法...
  • 如何删除 macOS 压缩包中的隐藏文件?在工作中,压缩打包文件是不可缺少的一项工作。为了避免文件的损坏和缺失,我们通常在macOS系统中,把多个文件或文件夹压缩后进行传输,我们一般使用访达(Finder)右键菜单中的...
  • 前段时间在工作过程,需要对压缩包集中某一类文件进行批量解压。如果手动解压压缩包,解压完成后还需要手动删除不同目录下其它文件。而且当压缩包数量较大时,操作起来更为费劲。因此,为了偷懒,便随手写了这...
  • 如何解压zip压缩包中的部分文件

    千次阅读 2018-10-19 17:10:04
    有一个zip包,但我只需要其中一个tar.gz文件zookeeper-...解压文件就在当前目录,通过MD5sum比较,文件是一样。 $ md5sum zookeeper-3.4.10.tar.gz 748ca94fb7d5ad1594b691e5b9004b5d zookeeper-3.4.10.tar.gz
  • 2、在压缩包中搜索关键字 1) 假如是非压缩包文件,可以用grep命令去搜索,例如: grep –i "被查找字符串" 文件名  2) 假如是.gz压缩包类型话,可以用zgrep命令去搜索,例如: zgrep –i "...
  • linux下直接修改压缩包中的内容

    千次阅读 2017-09-06 14:51:26
    1. cd到压缩包所在目录 2. vim xxxx.zip 3. 出现zip包中所有文件 4. 光标移动到文件上按回车即可打开文件 5. 修改文件操作与通常vim指令相同
  • 图片浏览,绿色的可以直接看Rar压缩包中的图哦
  • 写在前面 以gosif网站上tiff数据为例。 ...所以需要直接从压缩包中读取数据。 基于R语言 library(R.utils) library(stringr) library(raster) library(rasterVis) # download and read the dat
  • js可以可以直接读取zip压缩包中的内容吗? 如果可以,通过何种方式读取?
  • TAR查看压缩包中的内容

    万次阅读 2013-11-16 23:04:30
    tar -tf
  • 如何查看通过tar压缩包中的内容

    千次阅读 2014-04-13 09:29:57
    在《Linux中的打包与压缩指令:tar》中介绍了tar指令如何生成打包文件(.tar文件)以及打包并压缩的文件(.tar.gz和.tar.bz2文件),姑且将这些文件通称为tar压缩包文件,本文就介绍如何查
  • linux中怎么查看压缩包中的内容

    千次阅读 2012-11-28 15:16:17
    bzcat 档名.bz2 zcat 档名.gz tar文件: tar tf gz 文件: gzip -d -c -r *

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,880
精华内容 13,552
关键字:

压缩包中的压缩包