精华内容
下载资源
问答
  • // 复制文件  public static void copyFile(File sourceFile, File targetFile) throws IOException {  BufferedInputStream inBuff = null;  BufferedOutputStream outBuff = null;  try ...

    // 复制文件
        public static void copyFile(File sourceFile, File targetFile) throws IOException {
            BufferedInputStream inBuff 
    = null;
            BufferedOutputStream outBuff 
    = null;
            
    try {
                
    // 新建文件输入流并对它进行缓冲
                inBuff = new BufferedInputStream(new FileInputStream(sourceFile));

                
    // 新建文件输出流并对它进行缓冲
                outBuff = new BufferedOutputStream(new FileOutputStream(targetFile));

                
    // 缓冲数组
                byte[] b = new byte[1024 * 5];
                
    int len;
                
    while ((len = inBuff.read(b)) != -1) {
                    outBuff.write(b, 
    0, len);
                }
                
    // 刷新此缓冲的输出流
                outBuff.flush();
            } 
    finally {
                
    // 关闭流
                if (inBuff != null)
                    inBuff.close();
                
    if (outBuff != null)
                    outBuff.close();
            }
        }

        
    // 复制文件夹
        public static void copyDirectiory(String sourceDir, String targetDir) throws IOException {
            
    // 新建目标目录
            (new File(targetDir)).mkdirs();
            
    // 获取源文件夹当前下的文件或目录
            File[] file = (new File(sourceDir)).listFiles();
            
    for (int i = 0; i < file.length; i++) {
                
    if (file[i].isFile()) {
                    
    // 源文件
                    File sourceFile = file[i];
                    
    // 目标文件
                    File targetFile = new File(new File(targetDir).getAbsolutePath() + File.separator + file[i].getName());
                    copyFile(sourceFile, targetFile);
                }
                
    if (file[i].isDirectory()) {
                    
    // 准备复制的源文件夹
                    String dir1 = sourceDir + "/" + file[i].getName();
                    
    // 准备复制的目标文件夹
                    String dir2 = targetDir + "/" + file[i].getName();
                    copyDirectiory(dir1, dir2);
                }
            }
        }

     

    /**
         * 
         * 
    @param filepath
         * 
    @throws IOException
         
    */
        
    public static void del(String filepath) throws IOException {
            File f 
    = new File(filepath);// 定义文件路径
            if (f.exists() && f.isDirectory()) {// 判断是文件还是目录
                if (f.listFiles().length == 0) {// 若目录下没有文件则直接删除
                    f.delete();
                } 
    else {// 若有则把文件放进数组,并判断是否有下级目录
                    File delFile[] = f.listFiles();
                    
    int i = f.listFiles().length;
                    
    for (int j = 0; j < i; j++) {
                        
    if (delFile[j].isDirectory()) {
                            del(delFile[j].getAbsolutePath());
    // 递归调用del方法并取得子目录路径
                        }
                        delFile[j].delete();
    // 删除文件
                    }
                }
            }
        }


    /**
         * 文件转成字节数组
         * 
         * 
    @param path
         * 
    @return
         * 
    @throws IOException
         
    */
        
    public static byte[] readFileToBytes(String path) throws IOException {
            
    byte[] b = null;
            InputStream is 
    = null;
            File f 
    = new File(path);
            
    try {
                is 
    = new FileInputStream(f);
                b 
    = new byte[(int) f.length()];
                is.read(b);
            } 
    finally {
                
    if (is != null)
                    is.close();
            }
            
    return b;
        }

     /**
         * 将byte写入文件中
         * 
         * 
    @param fileByte
         * 
    @param filePath
         * 
    @throws IOException
         
    */
        
    public static void byteToFile(byte[] fileByte, String filePath) throws IOException {
            OutputStream os 
    = null;
            
    try {
                os 
    = new FileOutputStream(new File(filePath));
                os.write(fileByte);
                os.flush();
            } 
    finally {
                
    if (os != null)
                    os.close();
            }
        }

    展开全文
  • 前言:对JavaSE学习回顾,使用File文件对象、字节流、递归(递归只是一种现象)拷贝源文件夹中所有文件文件夹极其子文件夹下的文件文件夹。注意事项:递归操作容易出现内存溢出,所以操作的源文件夹目录层级不要...

    前言:对JavaSE学习回顾,使用File文件对象、字节流、递归(递归只是一种现象)拷贝源文件夹中所有文件、文件夹极其子文件夹下的文件和文件夹。

    注意事项:递归操作容易出现内存溢出,所以操作的源文件夹目录层级不要太深!!!

    以下为代码实现:

    package cn.itcast.javaeeday11level01;
    
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    /**
     * 
     * @author 大家都说名字长不会被发现
     *  
     */
    public class CopyFolder {
    
        public static void main(String[] args) throws FileNotFoundException {
            File sourceFolder = new File("D:\\Java Android学习区\\教学视频\\数据结构");
            File goalFolder = new  File("D:\\CopyTest");
    
            copyFolder(sourceFolder, goalFolder);
    
        }
    
        public static void copyFolder(File sourceFolder,File goalFolder) throws FileNotFoundException {
    
            //判断目标文件夹是否存在
            if (!goalFolder.exists()) {
    
                //不存在创建一个目标文件夹
                goalFolder.mkdir();
            }
    
    
            //判断源文件夹是否存在
            if (sourceFolder.exists()) {
    
                //获取源文件夹下文件夹及文件的File对象
                File[] listFiles = sourceFolder.listFiles();
    
                //遍历File文件数组
                for (File file : listFiles) {
    
                    //判断是文件还是文件夹
                    if (file.isDirectory()) {
    
                        //是文件夹就创建一个新的File对象,将目标File对象和文件夹名传入
                        File newFileFolder = new File(goalFolder,file.getName());
    
                        //在目标文件夹下创建文件夹
                        newFileFolder.mkdir();
    
                        //递归调用方法自身
                        copyFolder(file, newFileFolder);
    
                    }else if (file.isAbsolute()) {
                        BufferedInputStream inputStream = null;
                        BufferedOutputStream outputStream = null;
                        try {
                            //定义新File对象
                            File newFile = new File(goalFolder,file.getName());
    
    
                            //定义字节输入输出流
                            inputStream = new BufferedInputStream(new FileInputStream(file));
                            outputStream = new BufferedOutputStream(new FileOutputStream(newFile));
    
                            //定义字节数组,大小为1M
                            byte[] buffer = new byte[1024*1024];
    
                            int len;
                            while((len = inputStream.read(buffer)) !=-1) {
    
                                //读数据
                                inputStream.read(buffer, 0, len);
                            }
    
                            //将数据写入
                            outputStream.write(buffer);
    
    
                        } catch (Exception e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }finally {
                            try {
                                outputStream.close();
                                inputStream.close();
                            } catch (IOException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
    
                        }
    
    
                    }
    
                }
    
            }else {
                throw new FileNotFoundException("您输入的路径不存在,请您重新输入");
    
            }
    
        }
    }
    
    展开全文
  • 优盘里面的文件夹变0字节也打不开文件的找到办法但过了一天之后不知道为什么电脑异常关机了(原因未知),回来之后发现硬盘已经无法访问 工具/软件:光明数据恢复软件 步骤1:先百度搜索并下载程序打开后,选中...
    如题试过了chk但等它完成指令后进入硬盘还是如此提示。优盘里面的文件夹变0字节也打不开文件的找到办法但过了一天之后不知道为什么电脑异常关机了(原因未知),回来之后发现硬盘已经无法访问  
    

    文件夹变0字节

    工具/软件:光明数据恢复软件

    步骤1:先百度搜索并下载程序打开后,选中需要恢复的盘,然后点《开始恢复》按钮
    文件夹变0字节

    步骤2:软件找出数据后,会放到与要恢复盘同名的目录中
    文件夹变0字节

    步骤3:勾上所有需要恢复的资料,接着点右上角的《另存为》按钮,将勾上的文件拷贝出来。
    文件夹变0字节

    步骤4:等待软件将文件复制完毕就可以了 。
    文件夹变0字节

    注意事项1:想要恢复1盘文件夹变0字节需要注意,一定要先恢复文件再格式化。

    注意事项2:文件夹变0字节找回出来的数据需要暂时保存到其它盘里。

    展开全文
  • public class FolderZip { private static final int BUFFER_SIZE = 2 * 1024; public static void main(String[] args) throws Exception { FileOutputStream fos1 = new FileOutputStream(new File(".
    可参考https://www.cnblogs.com/zeng1994/p/7862288.html
    
    
    public class FolderZip {
        private static final int  BUFFER_SIZE = 2 * 1024;
        public static void main(String[] args) throws Exception {
            FileOutputStream fos1 = new FileOutputStream(new File("C:\\Users\\Administrator\\Desktop\\报销.zip"));
            toZip("C:\\Users\\Administrator\\Desktop\\报销",fos1,true);
        }
    
        /**
         * 文件夹压缩
         * @param srcDir    目标文件夹
         * @param out       zip写入
         * @param KeepDirStructure  是否按目录结构输出,否则所有文件在根目录
         * @throws RuntimeException
         */
        public static void toZip(String srcDir, OutputStream out, boolean KeepDirStructure)
                throws RuntimeException{
            long start = System.currentTimeMillis();
            ZipOutputStream zos = null ;
            try {
                zos = new ZipOutputStream(out);
                File sourceFile = new File(srcDir);
                compress(sourceFile,zos,sourceFile.getName(),KeepDirStructure);
                long end = System.currentTimeMillis();
                System.out.println("压缩完成,耗时:" + (end - start) +" ms");
            } catch (Exception e) {
                throw new RuntimeException("zip error from ZipUtils",e);
            }finally{
                if(zos != null){
                    try {
                        zos.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    
    
        private static void compress(File sourceFile, ZipOutputStream zos, String name,
    
                                     boolean KeepDirStructure) throws Exception{
    
            byte[] buf = new byte[BUFFER_SIZE];
    
            if(sourceFile.isFile()){
    
                // 向zip输出流中添加一个zip实体,构造器中name为zip实体的文件的名字
                //todo 可过滤添加文件
    
                zos.putNextEntry(new ZipEntry(name));
    
                // copy文件到zip输出流中
    
                int len;
    
                FileInputStream in = new FileInputStream(sourceFile);
    
                while ((len = in.read(buf)) != -1){
    
                    zos.write(buf, 0, len);
    
                }
                // Complete the entry
                zos.closeEntry();
                in.close();
            } else {
                File[] listFiles = sourceFile.listFiles();
                if(listFiles == null || listFiles.length == 0){
                    // 需要保留原来的文件结构时,需要对空文件夹进行处理
                    if(KeepDirStructure){
                        // 空文件夹的处理
                        zos.putNextEntry(new ZipEntry(name + "/"));
                        // 没有文件,不需要文件的copy
                        zos.closeEntry();
                    }
                }else {
                    for (File file : listFiles) {
                        // 判断是否需要保留原来的文件结构
                        if (KeepDirStructure) {
                            // 注意:file.getName()前面需要带上父文件夹的名字加一斜杠,
                            // 不然最后压缩包中就不能保留原来的文件结构,即:所有文件都跑到压缩包根目录下了
                            compress(file, zos, name + "/" + file.getName(),KeepDirStructure);
                        } else {
                            compress(file, zos, file.getName(),KeepDirStructure);
                        }
                    }
                }
            }
        }
    
        /**
         * 文件转字节数组
         * @param tradeFile
         * @return
         */
        public static byte[] fileToByteArray(File tradeFile){
            byte[] buffer = null;
            try
            {
                FileInputStream fis = new FileInputStream(tradeFile);
                ByteArrayOutputStream bos = new ByteArrayOutputStream();
                byte[] b = new byte[1024];
                int n;
                while ((n = fis.read(b)) != -1)
                {
                    bos.write(b, 0, n);
                }
                fis.close();
                bos.close();
                buffer = bos.toByteArray();
            }catch (FileNotFoundException e){
                e.printStackTrace();
            }catch (IOException e){
                e.printStackTrace();
            }
            return buffer;
        }
    
        /**
         * 根据byte数组,生成文件
         */
        public static void getFile(byte[] bfile, String filePath,String fileName) {
            BufferedOutputStream bos = null;
            FileOutputStream fos = null;
            File file = null;
            try {
                File dir = new File(filePath);
                if(!dir.exists()&&dir.isDirectory()){//判断文件目录是否存在
                    dir.mkdirs();
                }
                file = new File(filePath+"\\"+fileName);
                fos = new FileOutputStream(file);
                bos = new BufferedOutputStream(fos);
                bos.write(bfile);
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (bos != null) {
                    try {
                        bos.close();
                    } catch (IOException e1) {
                        e1.printStackTrace();
                    }
                }
                if (fos != null) {
                    try {
                        fos.close();
                    } catch (IOException e1) {
                        e1.printStackTrace();
                    }
                }
            }
        }
    }
    展开全文
  • 这里以我的JDK文件夹为例: package com.data.io; import java.io.File; /** * App.java * @author Administrator * */ public class App { public static void main(String[] args) { File ...
  • Linux下删除一个文件夹字节小于10kb的文件 研究非均相降水对洪水预报的影响的时候,从USGS站点上下载了19230个站点的数据,但是有部分站点由于不可名状的原因没有数据 这种站点文件大小一般为1kb,决定删除所有...
  • import java.io.File;/* * (1)调用File类的 public File[] listFiles() 方法获取一个文件的集合,并遍历... (2)获取这个文件夹下面所有文件字节大小 (3)获取这个文件下的文件的个数及文件夹个数 */ public class
  • 文件夹变0字节如何解决?

    千次阅读 2020-12-28 13:59:38
    如题试过了chk但等它完成指令后进入硬盘还是如此提示。文件夹变0字节如何解决?但过了一天之后不知道为什么电脑异常...步骤2:程序扫描到文件后,会放到与要恢复盘卷标名相同的目录 步骤3:打钩所有需要恢复的数据
  • package .... test1 ..."文件夹不存在" ) ; } } public static void main ( String [ ] args ) { File file = new File ( "E:/haha" ) ; method ( file ) ; } }
  • import java.io.File; import java.util.Scanner; public class Test7 { ... * 统计文件夹大小字节,直接统计文件的结果是0 */ public static void main(String[] args) { File dir = getDir()...
  • JAVA 创建文件文件夹删除文件文件夹,复制文件文件夹,移动文件文件夹的实用工具类
  • 把所有jar包删了再重新引入jar包,既可解决。
  • 硬盘虽然使用很方便,可随时拷贝资料到任何有电脑的地方,但它的问题也是比较多的,其中硬盘提示文件夹变0字节故障最让人心虚,因为已经无法打开硬盘了,里面的资料怎么办,很重要的怎么办,所以今天就教大家遇到此...
  • C#遍历指定文件夹中的所有文件 DirectoryInfo TheFolder=new DirectoryInfo(folderFullName); //遍历文件夹 foreach(DirectoryInfo NextFolder in TheFolder.GetDirectories()) this.listBox1.Items.Add(NextFolder....
  • 获取文件夹中所有图片文件

    千次阅读 2019-02-20 11:14:01
    开发中常遇到要读取指定文件夹中的某一类文件,这时如果每次都以拼字符串地址的形式查找文件比较麻烦,分享两个读取指定文件夹中某一类文件的方法。以图片文件为例:1、以WWW方式进行加载,显示在RawImage上;2、以...
  • import java.io.File; public class Jisuan { public static void main(String[] args) { File file=new File("E:\\A");//写自己文件路径 ... //定义一个方法,用来加文件夹中字节 public static lon
  • C#遍历指定文件夹中的所有文件  DirectoryInfo TheFolder=new DirectoryInfo(folderFullName); //遍历文件夹 foreach(DirectoryInfo NextFolder in TheFolder.GetDirectories())  this.listBox1.Items.Add...
  • C#遍历指定文件夹中的所有文件

    千次阅读 2019-09-30 20:34:08
    C#遍历指定文件夹中的所有文件 DirectoryInfo TheFolder=new DirectoryInfo(folderFullName);//遍历文件夹foreach(DirectoryInfo NextFolder in TheFolder.GetDirectories()) this.listBox1.Items.Add(NextFolder....
  • 字节流实现文件文件夹的拷贝
  • 路径没错的情况下可以试试下面这种方法 // InputStream inputStream = this.getServletContext().getResourceAsStream("/... * 资源文件resources会被编译成字节文件 * 放入服务器的classes文件夹中运行,就没有...
  • 1. 以下的代码可以用来复制文件夹中的所有文件、目录。但目的目录是源目录的子目录就不行了,会死循环调用。 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import ...
  • python属于脚本语言,执行python文件需要通过python解释器将源码转换为字节码,然后供cpu读取,pycache文件夹里面保存的就是py文件对应的字节文件,每执行一次py文件都会成生成或改变pycache字节文件 ...
  • C#遍历指定文件夹中的所有指定文件

    千次阅读 2017-03-09 18:41:27
    C#遍历指定文件夹中的所有文档文件 filePath_dk 存储文档的文件夹  if (!string.IsNullOrEmpty(filePath_dk))  {  DirectoryInfo myDir = new DirectoryInfo(filePath_dk);  
  • android从assets文件夹中读取xml文件

    千次阅读 2015-12-09 22:23:37
    Context.getAssets().openXmlResourceParser(fileNameString) 出现FileNotFoundException,认为assets文件夹文件须用open()打开,不能用方法openXmlResourceParser。 解决方法把xml文件放入res文件夹打开。 ...
  • Linux查看文件夹中文件的个数

    万次阅读 2019-03-26 22:06:21
    公众号介绍:Microstrong(小强)同学主要研究机器学习、深度学习、计算机视觉、智能对话系统相关内容,分享在学习过程的读 书笔记!期待您的关注,欢迎一起学习交流进步! 知乎专栏:...
  • os.path 模块提供了一些函数,获取文件夹中文件列表以及文件大小: os.path.getsize(path) 会返回 path 文件字节数。 os.listdir(path) 会返回 path 所包含的文件文件名列表。注意: 这个方法直接挂在 os ...
  • * 删除文件夹里面的所有文件 * @param path String 文件夹路径 如 c:/fqf */ public void delAllFile(String path) { File file = new File(path); if (!file.exists()) { return; } if (!...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 179,463
精华内容 71,785
关键字:

如何删除文件夹中无字节的文件