`
Brucegaochina
  • 浏览: 39665 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

把一个文件夹下文件分别归类

阅读更多
实用场景: 例如在一个文件目录下面文件很多,现在要把这么多的文件分别移动(剪切)到各自的小目录下面,可以定制每个文件目录下存放的文件数量。

代码如下:
package com.test.file;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * divide a heap of files into specified category
 * 
 * @author qgao
 */
public class FileUtils {
  public FileUtils() {

  }

  /**
   * classify a heap of files ,store them in some folders each folder have the
   * same number of files
   * 
   * @param pathname
   * @throws IOException
   */
  public void classifyFile(String pathname, int num, String prefix)
      throws IOException {
    if (num <= 0)
      return;
    File dir = new File(pathname);
    File[] files = dir.listFiles();
    int count = 0;
    int folder = 0;
    File tmpFolder = null;

    for (int i = 0; i < files.length; i++) {
      if (files[i].isFile()) {
        if (count % num == 0) {
          File temp =
              new File(pathname + File.separator + prefix
                  + String.valueOf(folder++));

          temp.mkdir();

          tmpFolder = temp;
        }
        this.cutFile(files[i], tmpFolder);
        count++;
      }
    }

  }

  public void classifyFile(String pathname, String prefix) throws IOException {
    this.classifyFile(pathname, 10, prefix);
  }

  public void classifyFile(String pathname) throws IOException {
    this.classifyFile(pathname, 10, "");
  }

  /**
   * cut a file from one folder to anther foler
   * 
   * @param file the source file
   * @param temp the target folder
   * @throws IOException
   */
  public void cutFile(File file, File folderPath) throws IOException {
    File srcFile = file;
    if (srcFile.isFile()) {
      File desFile =
          new File(folderPath.getAbsolutePath() + File.separator
              + srcFile.getName());
      FileInputStream input = new FileInputStream(srcFile);
      FileOutputStream output = new FileOutputStream(desFile);
      try {

        byte[] buffer = new byte[4096];
        int n = 0;
        while (-1 != (n = input.read(buffer))) {
          System.out.println(n);
          output.write(buffer, 0, n);
        }

      } finally {
        try {
          if (input != null) {
            input.close();
          }
          if (output != null) {
            output.close();
          }
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
      srcFile.delete();
    } else
      return;
  }
}

分享到:
评论

相关推荐

    Excel使用Vba读取文件夹下所有文件[归类].pdf

    Excel使用Vba读取文件夹下所有文件[归类].pdf

    asp.net(C#)读取文件夹和子文件夹下所有文件,绑定到GRIDVIEW并排序

    后者,我认为对于一个网站,会上传很多类型的文件,如果不在总上传文件夹下归类子文件夹,管理起来很不方便,太混杂了,貌似于饭菜放在一起,可我不喜欢那样的菜饭哦,呵呵。 管理上传文件夹以及子文件夹的文件并...

    Python版文件夹整理工具源代码,按文件类型进行归类,可自定义归类方式

    Python版文件夹整理工具,按文件类型进行归类,可修改config.json来自定义归类方式,自动删除空文件夹,可自动按照图片、视频、音频、电子表格、文档、压缩文件、程序脚本、可执行程序进行归类

    BAT批处理 将前缀相同的文件放入对应文件夹

    将bat放入要分类的文件夹中,双击打开后输入前缀的字符数,即可根据文件名称前缀分类并创建文件夹放入。使用前请备份数据进行测试!!! 如:A001.jpg,A002.jpg,B001.jpg,B002.jpg 字符数:3 结果: A00 -&gt; A001....

    linux文件系统和各个文件夹的作用归类.pdf

    linux文件系统和各个文件夹的作用归类.pdf

    文件按照名称复制归类到文件夹

    文件实现了简单的复制移动,其中复制会按照文件的名称进行分类,比如:照片LC010201、LC020101、LB010101,其中第一张照片会被分到LC-LC01-LC0102文件加下面,第二章照片会在LC-LC02-LC0201文件加下面,第三章照片会...

    同扩展名文件自动复制归类到指定位置BAT

    该P程序可以实现同扩展名文件自动归类到指定目录中,工作中相当实用!

    java编写的文件归类工具,附源码

    java编写的文件归类工具,可将指定文件夹中的相同后缀名的文件移动到以文件后缀名为名称的文件夹中,如没有以文件后缀名为名称的文件夹,系统会自行建立;如撤销,即可撤销所有操作,jar文件中附带源代码,欢迎指正...

    python按顺序重命名文件并分类转移到各个文件夹中的实现代码

    文件夹中有22个子文件夹,每个子文件又包含56个文件,要求将每个子文件夹中的第一个文件放到一个新文件夹中,第二个放一个新的中,一直到最后。 解决方案 1.复制源文件 import os import shutil #源文件路径 source...

    bat 按文件归档到文件夹

    文件下的目录有多个文件:AAA1.pdf,AAA2.pdf,AAA3.pdf,BBB1.pdf,BBB2.pdf,CCC1.pdf,归类从文件夹 AAA(AAA1.pdf,AAA2.pdf,AAA3.pdf),BBB(BBB1.pdf,BBB2.pdf),CCC(CCC1.pdf),省去人工归类的麻烦。

    根据前缀分类.bat

    根据文件名bai称中指定字符前面的内容,将文件名开头具有相同字符串前缀的文件归类/移动到以该字符串前缀命名的文件夹里

    根据日期范围批量创建文件夹

    根据日期范围同步文件夹的创建并修改文件夹的修改日期,创建日期,访问日期。

    一键文件归类fileren

    文件夹内有各种类型文件,比如图片、音频、视频,怎么快速把他们分类出来? 系统自动搜索的方法. 假设照片文件夹为E:\网管文件,如果相机生成的视频文件格式为mp4,那么可以通过系统自身的功能来过滤所有的视频文件 ...

    CopyDiy文件复制备份助手

    文件复制、备份、查重,让文件备份变得如此简单高效 1)单向复制备份:把源文件夹中新增或修改过的文件更新到目标文件夹。...可以查找一个文件夹的重复文件,也可以对比查找源文件夹和目标文件夹中的重复文件,查找出来

    python爬虫后的数据按照URL进行归类存储

    1、第一步把这两个文件都放在桌面,桌面新建一个文件夹名为,如“洗发水” 2、第二步打开洗发水测试csv文件,内容为空,打开你原始的洗发水xlsx文件的内容,将其(Ctrl+A)全部复制到洗发水测试csv中,稍微等待一会...

    vs项目文件夹进行分类管理

    vs项目文件夹进行分类管理--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------...

    遍历文件夹及子文件夹.exe

    用于遍历计算机内不同类型的文件,并可生成电子表格,方便于对计算机内的文档进行归类整理,纯绿色软件,不需要安装。

    文件批量改名归类工具源码

    可从指定文件夹下读取文件名到EXCEL表中;可批量改名;对文件夹有的文件在EXCEL表中作标识;将文件改名后归类复制到文件夹。

    微信小程序云开发获取文件夹下所有文件(推荐)

    因为改成小程序云开发,所以需求也有了些变动,最后改成不需要后台,图片直接在云开发控制台中上传,然后在小程序中添加一个专门用来对封面和名称做修改的管理员页面,其中最大的问题就是如何获取文件夹下的图片,查...

    快速文件归类程序代码

    根据设定的目录,文件格式,大小等,快速将目录内(包括子目录)的所有文件自动提取出来,归到一个文件夹内,尤其是对爱好学习的同学有用,图片文件,文本文件; 包内有源代码,VS.NET2005/C#

Global site tag (gtag.js) - Google Analytics