精华内容
下载资源
问答
  •  * ZipOutputStream类解压文件文件夹中的文件  *  */ public class ZipManager {    /**  * zip压缩功能测试. 将d://temp//zipout目录下的所有文件连同子目录压缩到d://temp//out.zip.  *  * @...

     

    代码很全哦……

    package com.yjd.test;

    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.ArrayList;
    import java.util.Enumeration;
    import java.util.List;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipFile;
    import java.util.zip.ZipOutputStream;
    import java.util.zip.GZIPInputStream;
    import java.io.DataInputStream;

     

    /**

     * 2010-01-27

     *@author yjd
     * ZipOutputStream类解压文件或文件夹中的文件
     *
     */
    public class ZipManager {

     

            /**
             * zip压缩功能测试. 将d://temp//zipout目录下的所有文件连同子目录压缩到d://temp//out.zip.
             *
             * @param baseDir 所要压缩的目录名(包含绝对路径)
             * @param objFileName 压缩后的文件名
             * @throws Exception
             */
            public void createZip(String baseDir, String objFileName) throws Exception {
                    File folderObject = new File(baseDir);

     

                    if (folderObject.exists()){
                            List fileList = getSubFiles(new File(baseDir));

     

                            //压缩文件名
                            ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(objFileName));

     

                            ZipEntry ze = null;
                            byte[] buf = new byte[1024];
                            int readLen = 0;
                            for (int i = 0; i < fileList.size(); i++) {
                                    File f = (File) fileList.get(i);
                                    System.out.println("Adding: " + f.getPath() + f.getName());

     

                                    //创建一个ZipEntry,并设置Name和其它的一些属性
                                    ze = new ZipEntry(getAbsFileName(baseDir, f));
                                    ze.setSize(f.length());
                                    ze.setTime(f.lastModified());

     

                                    //将ZipEntry加到zos中,再写入实际的文件内容
                                    zos.putNextEntry(ze);
                                    InputStream is = new BufferedInputStream(new FileInputStream(f));
                                    while ((readLen = is.read(buf, 0, 1024)) != -1) {
                                            zos.write(buf, 0, readLen);
                                    }
                                    is.close();
                                    System.out.println("done...");
                            }
                            zos.close();
                    }else{
                            throw new Exception("this folder isnot exist!");
                    }
            }
            /**
             * zip压缩功能测试. 将指定文件压缩后存到一压缩文件中
             *
             * @param baseDir 所要压缩的文件名
             * @param objFileName 压缩后的文件名
             * @return 压缩后文件的大小
             * @throws Exception
             */
            public long createFileToZip(String zipFilename,String sourceFileName) throws Exception {

     

                    File  sourceFile = new File(sourceFileName);

     

                    byte[] buf = new byte[1024];

     

                    //压缩文件名
                    File objFile = new File(zipFilename);

     

                    ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(objFile));

     

                    ZipEntry ze = null;
                    //创建一个ZipEntry,并设置Name和其它的一些属性
                    ze = new ZipEntry(sourceFile.getName());
                    ze.setSize(sourceFile.length());
                    ze.setTime(sourceFile.lastModified());

     

                    //将ZipEntry加到zos中,再写入实际的文件内容
                    zos.putNextEntry(ze);

     

                    InputStream is = new BufferedInputStream(new FileInputStream(sourceFile));

     

                    int readLen = -1;
                    while ((readLen = is.read(buf, 0, 1024)) != -1) {
                            zos.write(buf, 0, readLen);
                    }
                    is.close();
                    zos.close();

     


                    return objFile.length();
            }
            /**
             * zip压缩功能测试. 将指定文件压缩后存到一压缩文件中
             *
             * @param baseDir 所要压缩的文件名
             * @param objFileName 压缩后的文件名
             * @return 压缩后文件的大小
             * @throws Exception
             */
            public long createFileToZip(File sourceFile,File zipFile)throws IOException {

     


                    byte[] buf = new byte[1024];

     

                    //压缩文件名
                    File objFile = zipFile;

     

                    ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(objFile));

     

                    ZipEntry ze = null;
                    //创建一个ZipEntry,并设置Name和其它的一些属性
                    ze = new ZipEntry(sourceFile.getName());
                    ze.setSize(sourceFile.length());
                    ze.setTime(sourceFile.lastModified());

     

                    //将ZipEntry加到zos中,再写入实际的文件内容
                    zos.putNextEntry(ze);

     

                    InputStream is = new BufferedInputStream(new FileInputStream(sourceFile));

     

                    int readLen = -1;
                    while ((readLen = is.read(buf, 0, 1024)) != -1) {
                            zos.write(buf, 0, readLen);
                    }
                    is.close();
                    zos.close();

     

                    return objFile.length();
            }

     

            /**
             * 测试解压缩功能. 将d://download//test.zip连同子目录解压到d://temp//zipout目录下.
             *
             * @throws Exception
             */
            public void releaseZipToFile(String sourceZip, String outFileName)
                            throws IOException{
                          ZipFile zfile=new ZipFile(sourceZip);
                          System.out.println(zfile.getName());
                          Enumeration zList=zfile.entries();
                          ZipEntry ze=null;
                          byte[] buf=new byte[1024];
                          while(zList.hasMoreElements()){
                          //从ZipFile中得到一个ZipEntry
                          ze=(ZipEntry)zList.nextElement();
                          if(ze.isDirectory()){
                          continue;
                          }
                          //以ZipEntry为参数得到一个InputStream,并写到OutputStream中
                          OutputStream os=new BufferedOutputStream(new FileOutputStream(getRealFileName(outFileName, ze.getName())));
                          InputStream is=new BufferedInputStream(zfile.getInputStream(ze));
                          int readLen=0;
                          while ((readLen=is.read(buf, 0, 1024))!=-1) {
                          os.write(buf, 0, readLen);
                          }
                          is.close();
                          os.close();
                          System.out.println("Extracted: "+ze.getName());
                          }
                          zfile.close();

            }

     

            /**
             * 取得指定目录下的所有文件列表,包括子目录.
             *
             * @param baseDir
             *            File 指定的目录
             * @return 包含java.io.File的List
             */
            private List getSubFiles(File baseDir) {
                    List ret = new ArrayList();
                    //File base=new File(baseDir);
                    File[] tmp = baseDir.listFiles();
                    for (int i = 0; i < tmp.length; i++) {
                            if (tmp[i].isFile()) {
                                    ret.add(tmp[i]);
                            }
                            if (tmp[i].isDirectory()) {
                                    ret.addAll(getSubFiles(tmp[i]));
                            }
                    }
                    return ret;
            }

     

            /**
             * 给定根目录,返回一个相对路径所对应的实际文件名.
             *
             * @param baseDir
             *            指定根目录
             * @param absFileName
             *            相对路径名,来自于ZipEntry中的name
             * @return java.io.File 实际的文件
             */
            private File getRealFileName(String baseDir, String absFileName) {
                    String[] dirs = absFileName.split("/");
                    //System.out.println(dirs.length);
                    File ret = new File(baseDir);
                    //System.out.println(ret);
                    if (dirs.length > 1) {
                            for (int i = 0; i < dirs.length - 1; i++) {
                                    ret = new File(ret, dirs[i]);
                            }
                    }
                    if (!ret.exists()) {
                            ret.mkdirs();
                    }
                    ret = new File(ret, dirs[dirs.length - 1]);
                    return ret;
            }

     

            /**
             * 给定根目录,返回另一个文件名的相对路径,用于zip文件中的路径.
             *
             * @param baseDir
             *            java.lang.String 根目录
             * @param realFileName
             *            java.io.File 实际的文件名
             * @return 相对文件名
             */
            private String getAbsFileName(String baseDir, File realFileName) {
                    File real = realFileName;
                    File base = new File(baseDir);
                    String ret = real.getName();
                    while (true) {
                            real = real.getParentFile();
                            if (real == null)
                                    break;
                            if (real.equals(base))
                                    break;
                            else {
                                    ret = real.getName() + "/" + ret;
                            }
                    }
                    System.out.println("--------------" + ret);
                    return ret;
            }


            public void testReadZip() throws Exception{
            String baseDir="d://temp//zipout";
            ZipFile zfile=new ZipFile("d://download//src.zip");
            System.out.println(zfile.getName());
            Enumeration zList=zfile.entries();
            ZipEntry ze=null;
            byte[] buf=new byte[1024];
            while(zList.hasMoreElements()){
            //从ZipFile中得到一个ZipEntry
            ze=(ZipEntry)zList.nextElement();
            if(ze.isDirectory()){
            continue;
            }
            //以ZipEntry为参数得到一个InputStream,并写到OutputStream中
            OutputStream os=new BufferedOutputStream(new FileOutputStream(getRealFileName(baseDir, ze.getName())));
            InputStream is=new BufferedInputStream(zfile.getInputStream(ze));
            int readLen=0;
            while ((readLen=is.read(buf, 0, 1024))!=-1) {
            os.write(buf, 0, readLen);
            }
            is.close();
            os.close();
            System.out.println("Extracted: "+ze.getName());
            }
            zfile.close();
            }


       public static void main(String args[]){
         ZipManager manager = new ZipManager();
         try {
           //manager.releaseZipToFile("c://test.zip","c://test");
           manager.testReadZip();
         }
         catch (Exception e) {

    System.out.println("error");

         }
         System.out.println("over");
       }


    }

     

    展开全文
  • 如何把文件打包为zip包,那么反过来怎么把zip文件解压为正常文件呢?把zip包解压为正常文件包,要比把文件打包为zip简单一点。因为存在多级文件的压缩,却不存在多级文件的解压缩。也就是说,压缩时,你要把所有...

    前面,笔者讲到。如何把文件打包为zip包,那么反过来怎么把zip文件包解压为正常文件呢?把zip包解压为正常文件包,要比把文件打包为zip简单一点。因为存在多级文件的压缩,却不存在多级文件的解压缩。也就是说,压缩时,你要把所有文件都塞到压缩包里。而解压缩只需要解压一级,压缩包里面的压缩文件则不必理会。
    直接上代码喽:

        /**
         * 解压文件
         * @param zipPath 要解压的目标文件
         * @param descDir 指定解压目录
         * @return 解压结果:成功,失败
         */
        @SuppressWarnings("rawtypes")
        public boolean decompressZip(String zipPath, String descDir) {
            File zipFile = new File(zipPath);
            boolean flag = false;
            File pathFile = new File(descDir);
            if(!pathFile.exists()){
                pathFile.mkdirs();
            }
            ZipFile zip = null;
            try {
                zip = new ZipFile(zipFile, Charset.forName("gbk"));//防止中文目录,乱码
                for(Enumeration entries = zip.entries(); entries.hasMoreElements();){
                    ZipEntry entry = (ZipEntry)entries.nextElement();
                    String zipEntryName = entry.getName();
                    InputStream in = zip.getInputStream(entry);
                    //指定解压后的文件夹+当前zip文件的名称
                    String outPath = (descDir+zipEntryName).replace("/", File.separator);
                    //判断路径是否存在,不存在则创建文件路径
                    File file = new File(outPath.substring(0, outPath.lastIndexOf(File.separator)));
                    if(!file.exists()){
                        file.mkdirs();
                    }
                    //判断文件全路径是否为文件夹,如果是上面已经上传,不需要解压
                    if(new File(outPath).isDirectory()){
                        continue;
                    }
                    //保存文件路径信息(可利用md5.zip名称的唯一性,来判断是否已经解压)
                    System.err.println("当前zip解压之后的路径为:" + outPath);
                    OutputStream out = new FileOutputStream(outPath);
                    byte[] buf1 = new byte[2048];
                    int len;
                    while((len=in.read(buf1))>0){
                        out.write(buf1,0,len);
                    }
                    in.close();
                    out.close();
                }
                flag = true;
                //必须关闭,要不然这个zip文件一直被占用着,要删删不掉,改名也不可以,移动也不行,整多了,系统还崩了。
                zip.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return flag;
        }

    找个例子实现一下:
    就你了!
    java解压zip文件至指定文件夹

    调用:

                    String deal_zip = "C:\\20180909.zip";
                    String agter_zip = "D:\\red_ant_file";//解压完塞到这里吧
                    boolean is_success = AllServiceIsHere.decompressZip(deal_zip, agter_zip);
                    if(is_success) {
                        System.err.println("恭喜你,解压成功!");
                    }else {
                        System.err.println("sorry, you failed!");
                    }

    走你!

    java解压zip文件至指定文件夹

    嗯嗯,达到了我所要求的。赶集去喽!
    java解压zip文件至指定文件夹
    java解压zip文件至指定文件夹

    java解压zip文件至指定文件夹

    展开全文
  • java下载文件文件夹

    2020-12-31 16:00:38
    最近接到一个需求,就是将远程目录下的文件文件夹下载到指定目录下,下面来看下最后的成果。 1.首先,IO流输出文件(可以在浏览器端下载) public HttpServletResponse download(String fileName, ...

    最近接到一个需求,就是将远程目录下的文件或文件夹下载到指定目录下,下面来看下最后的成果。

    1.首先,IO流输出文件(可以在浏览器端下载)

       public HttpServletResponse download(String fileName, HttpServletResponse response) {
            File file = new File(gitConfig.getDestPath() + "/" + fileName);
            if (file.isDirectory()){
                return downDestroy(file, response);
            }else{
                return downFile(file,response);
            }
    
        }
    
        /**
         * 下载文件
         * @param file
         * @param response
         * @return
         */
        private HttpServletResponse downFile(File file, HttpServletResponse response) {
            InputStream fis = null;
            OutputStream toClient = null;
            try {
                // 以流的形式下载文件。
                fis = new BufferedInputStream(new FileInputStream(file.getPath()));
                byte[] buffer = new byte[fis.available()];
                fis.read(buffer);
                // 清空response
                response.reset();
                toClient = new BufferedOutputStream(response.getOutputStream());
                response.setContentType("application/octet-stream");
                //如果输出的是中文名的文件,在此处就要用URLEncoder.encode方法进行处理
                response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(file.getName(), "UTF-8"));
                toClient.write(buffer);
                toClient.flush();
            } catch (IOException ex) {
                ex.printStackTrace();
            }finally{
                try {
                    File f = new File(file.getPath());
                    f.delete();
                    if(fis!=null){
                        fis.close();
                    }
                    if(toClient!=null){
                        toClient.close();
                    }
    
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            return response;
        }
    
        /**
         * 下载文件夹
         * @param file
         * @param response
         * @return
         */
        private HttpServletResponse downDestroy(File file, HttpServletResponse response) {
            String zipFilePath = gitConfig.getDestPath()+"/"+file.getName()+"_"+System.currentTimeMillis()/1000+".zip";
            ZipCompressor zipCompressor = new ZipCompressor(zipFilePath);
            try {
                zipCompressor.compress(file.getPath());
                File zipFile = new File(zipFilePath);
                downFile(zipFile,response);
            } catch (IOException e) {
                e.printStackTrace();
            }
            return response;
        }
    
    

    对应的工具类

    
    import java.io.*;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.zip.CRC32;
    import java.util.zip.CheckedOutputStream;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipOutputStream;
    
    /**
     * 压缩类
     *
     */
    public class ZipCompressor {
    
        static final int BUFFER = 8192;
    
        /**
         * 压缩的文件夹
         */
        private File zipFile;
    
        public ZipCompressor(String pathName) {
            zipFile = new File(pathName);
        }
    
    
        /**
         * 遍历需要压缩文件集合
         * @param pathName
         * @throws IOException
         */
        public void compress(String... pathName) throws IOException {
            ZipOutputStream out =null;
            FileOutputStream fileOutputStream=null;
            CheckedOutputStream cos=null;
            try {
                fileOutputStream = new FileOutputStream(zipFile);
                cos = new CheckedOutputStream(fileOutputStream,new CRC32());
                out = new ZipOutputStream(cos);
                String basedir = "";
                for (int i=0;i<pathName.length;i++){
                    compress(new File(pathName[i]), out, basedir);
                }
            } catch (Exception e) {
                throw new RuntimeException(e);
            }finally {
                if(out!=null){
                    out.close();
                }
                if(fileOutputStream!=null){
                    fileOutputStream.close();
                }
                if(cos!=null){
                    cos.close();
                }
            }
        }
        /**
         * 压缩
         * @param file
         * @param out
         * @param basedir
         */
        private void compress(File file, ZipOutputStream out, String basedir) throws IOException {
            // 判断是目录还是文件
            if (file.isDirectory()) {
                this.compressDirectory(file, out, basedir);
            } else {
                this.compressFile(file, out, basedir);
            }
        }
        /**
         * 压缩一个目录
         * */
        private void compressDirectory(File dir, ZipOutputStream out, String basedir) throws IOException {
            if (!dir.exists()){
                return;
            }
            File[] files = dir.listFiles();
            for (int i = 0; i < files.length; i++) {
                // 递归
                compress(files[i], out, basedir + dir.getName() + "/");
            }
        }
        /**
         * 压缩一个文件
         *
         * */
        private void compressFile(File file, ZipOutputStream out, String basedir) throws IOException {
            if (!file.exists()) {
                return;
            }
            BufferedInputStream bis =null;
            try {
                bis = new BufferedInputStream(new FileInputStream(file));
                ZipEntry entry = new ZipEntry(basedir + file.getName());
                out.putNextEntry(entry);
                int count;
                byte[] data = new byte[BUFFER];
                while ((count = bis.read(data, 0, BUFFER)) != -1) {
                    out.write(data, 0, count);
                }
            } catch (Exception e) {
                throw new RuntimeException(e);
            }finally {
                if(bis!=null){
                    bis.close();
                }
            }
        }
    }
    

    2.接收IO文件流,并保存到本地(文件夹类接收的是压缩文件,接收完之后会将压缩文件解压然后删除压缩文件)

        public void downFileOrDestroy(String fileName){
            boolean isfile = true;
            if (fileName.indexOf(".")==-1){
                //如果是文件夹
                isfile =false;
            }
            String pluginsDir = "D:/file";
            URL urlfile = null;
            HttpURLConnection httpUrl = null;
            BufferedInputStream bis = null;
            BufferedOutputStream bos = null;
            File path = new File(pluginsDir);
            if (!path.exists()){
                path.mkdirs();
            }
            File f = null;
            if (isfile){
                f = new File(pluginsDir+"/"+fileName);
            }else{
                f = new File(pluginsDir+File.separator+fileName+"_"+System.currentTimeMillis()/1000+".zip");
            }
            try {
                urlfile = new URL("文件IO输出接口地址?fileName="+fileName);
                httpUrl = (HttpURLConnection) urlfile.openConnection();
                httpUrl.connect();
                InputStream inputStream = httpUrl.getInputStream();
                bis = new BufferedInputStream(inputStream);
                FileOutputStream fileOutputStream = new FileOutputStream(f);
                bos = new BufferedOutputStream(fileOutputStream);
                int len = 2048;
                byte[] b = new byte[len];
                while ((len = bis.read(b)) != -1) {
                    bos.write(b, 0, len);
                }
                bos.flush();
                bos.close();
                bis.close();
                httpUrl.disconnect();
                if (!isfile){
                    //如果是文件夹,下载下来的是压缩文件,要解压文件
                    ZipUtil.unZipUncompress(f.getPath(),pluginsDir);
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    bis.close();
                    bos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    涉及到的工具类:

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.util.Enumeration;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipFile;
    
    /**
     * @Author cs
     * @Date 2020/12/31 11:51
     * @Version 1.0
     */
    public class ZipUtil {
    
        /**
         * zip文件解压
         * @param inputFile  待解压文件夹/文件
         * @param destDirPath  解压路径
         */
        public static void unZipUncompress(String inputFile,String destDirPath){
            File srcFile = new File(inputFile);//获取当前压缩文件
            InputStream is = null;
            FileOutputStream fos = null;
            try{
                // 判断源文件是否存在
                if (!srcFile.exists()) {
                    throw new Exception(srcFile.getPath() + "所指文件不存在");
                }
                ZipFile zipFile = new ZipFile(srcFile);//创建压缩文件对象
                //开始解压
                Enumeration<?> entries = zipFile.entries();
                while (entries.hasMoreElements()) {
                    ZipEntry entry = (ZipEntry) entries.nextElement();
                    // 如果是文件夹,就创建个文件夹
                    if (entry.isDirectory()) {
                        srcFile.mkdirs();
                    } else {
                        // 如果是文件,就先创建一个文件,然后用io流把内容copy过去
                        File targetFile = new File(destDirPath + "/" + entry.getName());
                        // 保证这个文件的父文件夹必须要存在
                        if (!targetFile.getParentFile().exists()) {
                            targetFile.getParentFile().mkdirs();
                        }
                        targetFile.createNewFile();
                        // 将压缩文件内容写入到这个文件中
                        is = zipFile.getInputStream(entry);
                        fos = new FileOutputStream(targetFile);
                        int len;
                        byte[] buf = new byte[1024];
                        while ((len = is.read(buf)) != -1) {
                            fos.write(buf, 0, len);
                        }
                        // 关流顺序,先打开的后关闭
                        fos.close();
                        is.close();
                    }
                }
                zipFile.close();
            }catch (Exception e){
                e.printStackTrace();
            }finally {
                //删除压缩文件
                boolean delete = srcFile.delete();
                System.out.println(delete);
            }
        }
    }
    

    有的朋友可能会遇到临时文件删除不掉的问题,一般出现这种情况的原因都是IO没关闭,检查下自己的代码,先打开的IO后关闭,按顺序关闭IO即可解决。

    展开全文
  • 三、创建临时文件文件夹 四、批量创建、复制、移动、删除、重命名文件及文件夹 五、创建和解压压缩包 一、输出目录所在的文件以及文件夹 import os print(os.getcwd())#获得当前文件的地址 print(os.path....

    目录

     

    一、输出目录所在的文件以及文件夹

    二、遍历、搜索文件及查询文件信息

    三、创建临时文件及文件夹

    四、批量创建、复制、移动、删除、重命名文件及文件夹

    五、创建和解压压缩包


    一、输出目录所在的文件以及文件夹

    import os
    
    print(os.getcwd())#获得当前文件的地址
    print(os.path.join('MyProjects','AI'))#让Python自动处理路径连接
    for item in os.listdir():#列出该文件下的所有文件
    	print(item, os.path.isdir(item))#循环一遍看谁是文件谁是文件夹
    
    #os.scandir(指定的绝对路径或者相对路径)
    for file in os.scandir():
    	print(file.name, file.is_dir())

    二、遍历、搜索文件及查询文件信息

    • 字符串A.startswith(字符串B):字符串A是否以字符串B开头
    • 字符串A.endswith(字符串B):字符串A是否以字符串B结尾
    • os.walk(指定的绝对路径或者相对路径)
    • dripath是文件路径
    • files是dirpath这个文件夹里的文件列表
    • print(glob.glob('*.py'))#文件搜索匹配 
    • print(fnmatch.fnmatch('makerbean','m*an'))#匹配文件名
    import os
    import glob
    import fnmatch
    import datetime
    '''
    第一、
    			#dirnames是dirpath这个文件夹下的子文件列表
    for dirpath, dirnames, files in os.walk('./'):#把文件夹里的文件夹里的文件夹的文件都找出来
    	print(f'发现文件夹{dirpath}')#dripath是文件路径
    	print(files)#files是dirpath这个文件夹里的文件列表
    
    '''
    '''
    第二、
    #字符串A.startswith(字符串B):字符串A是否以字符串B开头
    #字符串A.endswith(字符串B):字符串A是否以字符串B结尾
    print('makerbean'.startswith('abc'))
    print('makerbean'.endswith('bean'))
    '''
    #print(glob.glob('*.py'))#文件搜索匹配 
    #print(fnmatch.fnmatch('makerbean','m*an'))#匹配文件名
    that_time = datetime.datetime.formtimestamp(1567764428)
    print(that_time)

    三、创建临时文件及文件夹

    • from tempfile import TemporaryFile #创建临时文件存储数据
    from tempfile import TemporaryFile #创建临时文件存储数据
    from tempfile import TemporaryDirectory
    
    #open,readlines(),close()
    '''
    #读取文件
    with open('file1.txt','r',encoding='utf-8') as f:
    	text = f.readlines()
    	print(text)
    
    #写入文件
    # 'w'换成'a':如果存在文件,会接着里面的内容后面继续写入
    with open('file2.txt','w',encoding='utf-8') as f:
    	text = '第一行内容\n第二行内容\n'
    	f.write(text)
    	f.write('第三行')
    
    #创建临时文件存储数据
    with TemporaryFile('w+') as f:  # 'w+'表示写入及读取文件
    	f.write('Hello毕老师!')
    	f.seek(0)					# .seek(0)表示回到文件开头位置
    	data = f.readlines()		# 程序运行完后会自动删除临时文件
    	print(data)
    '''
    #创建临时文件夹
    with TemporaryDirectory() as tmp_folder:
    	print(f'临时文件夹已创建:{tmp_folder}')

    四、批量创建、复制、移动、删除、重命名文件及文件夹

    • shutil.copy(复制文件,要复制的位置)
    • shutil.copytree(要复制的文件夹,要复制到的新文件夹位置)
    • shutil.move(要移动的文件夹/文件夹,要移动的位置)
    • os.rename(要重命名文件/文件夹,新名字)
    • os.remove(要删除的文件)
    • shutil.rmtree(要删除的文件夹)
       
    import os
    import shutil
    
    if not os.path.exists('新文件夹'): #检测该文件夹是否存在
    	os.mkdir('新文件夹') #创建文件夹
    
    #shutil.copy(复制文件,要复制的位置)
    shutil.copy('file.txt','./新文件夹')
    shutil.copy('file.txt','/新文件夹/new_file.txt')#第二个参数写到某个文件路径,复制到这个路径并且重命名
    
    #shutil.copytree(要复制的文件夹,要复制到的新文件夹位置)
    shutil.copytree('新文件夹','这是一个新文件夹')#新文件夹不能存在
    
    #shutil.move(要移动的文件夹/文件夹,要移动的位置)
    shutil.move('file2.txt','这是一个新的文件夹/file3.txt')
    
    #os.rename(要重命名文件/文件夹,新名字)
    #os.remove(要删除的文件)
    #shutil.rmtree(要删除的文件夹)

    五、创建和解压压缩包

    • 将所有文件都提取出来 .extractall(path=解压到哪个位置,pwd=b'密码')

    • 创建压缩包zipobj.write(待压缩文件名)

    import zipfile
    #读取压缩包内文件
    with zipfile.ZipFile('这是一个压缩包.zip','r') as zipobj:
    	for filename in zipobj.namelist():
    		info  = zipobj.getinfo(filename)#获取文件中的文件信息
    		new_filename = filename.encode('cp437').decode('gbk')#处理压缩包里的中文
    		print(new_filename,info.file_size,info.compress_size)
    
    #解压压缩包
    with ziofile.ZipFile('这是一个压缩包.zip','r') as zipobj:
    	zipobj.extract('file1.txt','C:')
    
    #中文乱码解决办法
    for file_name in zipobj.namelist:
    	correct_path = file_name.encode('cp437').decode('gbk')
    
    #将所有文件都提取出来 .extractall(path=解压到哪个位置,pwd=b'密码')
    
    #创建压缩包zipobj.write(待压缩文件名)
    file_list = ['lesson1.py','lesson2.py','lesson3.py','file1.txt']
    with zipfile.ZipFile('这是程序创建的压缩包.zip','w') as zipobj:
    	for file in file_list:
    		zipobj.write(file)
    
    	

     

    展开全文
  • 最近在做的一个需求是这样的:将导出的所有文件压缩为一个压缩文件,导入的时候再解压该...在这个需求过程中涉及到如下几个操作:文件夹压缩为一个压缩文件,删除临时文件夹解压压缩文件。 1 文件夹压缩为一...
  • 使用了Qt的库来进行压缩解压的。 修改pro文件 QT += gui-private 导入头文件 #include <private/qzipwriter_p.h> #include <private/qzipreader_p.h> 压缩 void zipWriter(QString path) { ...
  • Java解压缩zip - 解压缩多个文件文件夹

    万次阅读 多人点赞 2012-09-19 12:56:50
    对多个文件文件夹进行压缩,对复杂的文件目录进行解压。 压缩方法使用的是可变参数,可以压缩1到多个文件..可以写数组的方式或者一个个写到参数列表里面... ZipFiles(zip,"abc",new File("d:/English"),new File...
  • 为了不生成同名的文件夹 String s = UUID.randomUUID().toString(); String filepath = ServletActionContext.getServletContext().getRealPath("upload/...//创建临时文件夹 private void createfile(String ...
  • Java实现文件文件夹的删除

    千次阅读 2020-07-14 17:15:47
    Java实现文件文件夹的删除 1、删除单个文件 public static boolean deleteFile(String fileName) { File file = new File(fileName); // 如果文件路径只有单个文件 if (file.exists() && file.isFile...
  • 问题说明 今天在服务器解压一个之前上传的数据,大概有180GB,虽然...所以修改掉这个临时文件解压文件夹的目录即可 实际操作方法 EMM。在设置中找到这个东西就可以了,然后改到一个空间富余的路径下即可 以WinR...
  • 从ie临时文件夹一次复制多个文件

    千次阅读 2016-01-25 16:32:59
    原文:http://blog.sina.com.cn/s/blog_5209e2c701009ti7.html不能从ie临时文件夹一次复制多个文件到别的文件夹了 粘贴时会弹出“无法复制 文件”的对话框 ,怎么办? 几个方法: 1 1,关掉所有IE程序。2,打开...
  • 转自:... ...在.Net Framework 2.0 中添加了System.IO.Compression 类来实现对文件的压缩/解压(GZipStream方法),下面我们来看一个简单的例子. Code1:    1
  • rar解压时存放的临时位置:C:/Documents and Settings/当前用户名/Local Settings/temp/
  • Windows 7 修改系统临时文件夹

    千次阅读 2014-12-18 15:42:39
    Windows系统默认的临时文件夹位于C盘,而随着系统使用时间的增长,C盘会慢慢变得越来越拥挤,这个时候如果你要解压一个很大的压缩文件,比如刚刚下载的MSDN离线版,将近9G的大小,而C盘只剩下10G左右的空间,解压的...
  • 以上是常见的Tomcat解压后的目录,具体的作用如下: bin:二进制执行文件。里面最常用的文件是startup.bat,如果是 Linux 或 Mac 系统启动文件为 startup.sh。 conf:配置目录。里面最核心的文件是server.xml。...
  • 最近研究了市面上比较常见的几款文件加密软件原理, 单文件的加密解密已经没什么可说的了。 常见的文件夹加密方法被我归纳为以下4种: 1.利用windows系统特殊的保留文件名后缀,使文件夹无法打开和删除。 例如类似...
  • 临时文件

    千次阅读 2012-04-23 21:40:30
    全面认识系统临时文件 朋友们是否都有这样的经历,随着使用电脑的越长,系统分区的可用空间越来越少,产生这种情况的原因除了时常安装一些软件,还有一个很重要的原因,那就是“临时文件”在作怪。临时文件在您下 ...
  • 【转】7-zip 临时文件夹的 Bug

    千次阅读 2011-05-24 20:23:00
    (v4和v9)通过文件管理器鼠标拖拽触发的解压,会无视用户设定的临时文件夹选项(在7-zip里叫工作文件夹),使用系统默认TEMP文件夹。尝试解压20G的文件时出现系统盘空间耗尽的问题,特此记录。临时解决办法 :用...
  • Make SFX 5.4是一款EXE自解压文件制作工具,它可以快速生成EXE可执行自解压文件,可将解压文件释放到指定的文件夹,释放后可以启动指定的可执行文件(解压文件夹中的EXE或BAT文件),可定义工具目录及如何删除释放的...
  • 可设置解压文件夹(临时文件夹、桌面文件夹、文档文件夹、当前文件夹及解压文件时由用户选择文件夹,可使用环境变量设置自定义文件夹)。可设置自毁模式,即解压后自动删除自解压文件,静默模式即在解压时不显示任何...
  • 我在下载的时候给定的路径为如:D:\mywww\server\temp\mysql-5.5.19-win32.zip,那么解压出来后是这样的D:\mywww\server\temp\mysql-5.5.19-win32,那么我现在需要把mysql-5.5.19-win32文件夹下的所有文件拷贝到
  • 创建后的EXE自解压文件可以选择多种提取模式:解压文件到指定的文件夹-不删除提取文件(可选在资源管理器提取后打开解压文件夹)解压文件到指定的文件夹,启动可执行文件,当它已经完成执行删除提取的文件,可执行...
  • //取得系统临时目录 string sysTempDir = Path.GetTempPath();...//确定要解压到的目录,是系统临时文件夹下,与原压缩文件同名的目录里 string unrarDestPath = Path.Combine(sysTempDir, Path.G...
  • java实现文件夹解压jar包和zip包

    万次阅读 2017-12-07 16:20:15
    比如解压下列jar包:D:\ProtexScan\example\example.jar 将项目打成jar包后,执行:java...解压完成后会在D:\ProtexScan生成一个target目录和extractLog.txt日志文件,所有解压后的文件按照原目录结构放置在target目录
  • servlet遍历文件夹下面的文件

    千次阅读 2015-08-28 11:05:30
    2、获取源文件夹下面的文件数量file.listFiles(); 3、获取源文件夹下面文件的名称file.list(); 4、添加到list数组中 5、转到jsp页面显示String imgDirectory=getServletContext().getRealPath(“/”)+”images”;...
  • 1.下载免安装版压缩版,解压后就是一个文件夹 2.生成data文件夹 mysqld --initialize ---生成带随机密码(临时)的root用户 mysqld --initialize-insecure ---生成不带密码的root用户 3.在软件安装的...
  • bat批量解压文件

    千次阅读 2013-12-18 00:22:17
    @echo offtitle 大众--批量压缩文件color 0arem *********************************************************rem 在注册表中读取winrar的安装目录rem 如果已经存在临时文件,把它删除if EXIST tmp.大众 del tmp.大众...
  • Mac下压缩文件夹后,在windows解压后出现一个额外的__MACOSX文件夹: 终端中执行命令,不压缩 __MACOSC文件夹 unzip shell.zip shell -x __MACOSX/*
  • 将改文件夹文件删掉后依旧报错,无奈只好寻找其他解决方法,将临时文件夹改到其他比较大的磁盘上。以下为转移的方法,以D盘为例: 1、在D盘上新建文件夹Temp 2、修改系统环境变量(win7)  计算机右键...
  • * @param tempFilePath 临时文件存放的地方(以正斜线结尾) F:/ * @param filename 文件名,fusc.txt * @param destPath 目标文件的绝对路径 F:/ziped/dudududududdududu.zip * @param jsonStr 文件内的json字符...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,928
精华内容 15,171
关键字:

临时文件解压的文件夹