`
Brucegaochina
  • 浏览: 40480 次
  • 性别: 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 读取文件夹下所有文件[归类] 本文介绍了使用 Excel VBA 读取指定文件夹下的所有文件名称的方法,适用于 Excel 2010 和 Excel 2003 版本。该方法可以在 Excel 单元格中显示特定目录下的文件名称、...

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

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

    整理文件夹归类.pdf

    第五步:创建子目录合理存放文件,在已经分好类的文件夹中,如果文件还是很多的情况下,要尽量根据文件的属性,创建一些子目录,然后把相关的文件分别存放到子目录中。 第六步:对整理的文件进行排序,通过排序和...

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

    在这个特定的案例中,我们讨论的是一个Python编写的文件夹整理工具,它能够帮助用户按文件类型自动整理他们的文件。这个工具的核心功能是将不同类型的文件分类到相应的文件夹中,提高文件管理和查找的效率。 首先,...

    文件自动归类整理.zip

    在"文件归类.exe"这个可执行文件中,我们可以推测这可能是一个独立的程序,用于执行文件的自动分类任务。通常,这样的程序会包含以下功能: 1. 文件扫描:程序会遍历指定的文件夹或硬盘,读取每个文件的信息。 2. ...

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

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

    文件夹遍历归类.pdf

    文件夹遍历归类是指根据一定的规则或模式对文件夹及其子目录下的文件进行分类和整理的过程。在计算机科学中,文件夹遍历归类是一种常用的技术,用于快速地查找和管理大量的文件资源。 在本文件中,CBrowseDir 类是...

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

    标题中的“同扩展名文件自动复制归类到指定位置BAT”指的是使用批处理(BAT)脚本来实现一种自动化操作,即将具有相同文件扩展名的文件批量移动或复制到特定的目标文件夹中。这样的功能在整理大量文件时非常有用,...

    文件夹生成器,根据文件生成文件夹

    "文件夹生成器"是一个实用的工具,它能够根据文件的名称自动生成对应的文件夹,并将这些文件移动到相应创建的文件夹内,以此实现文件的有序分类。这个工具特别适用于处理大量文件时,如批量图片、文档或音频文件,能...

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

    - 所有的文件仍然保留在同一个物理文件夹中,这意味着当您直接浏览文件系统时,可能会觉得比较混乱。因此,这种方法更依赖于VS的内部视图而非文件系统的组织。 **实现步骤**: 1. **新建筛选器**:右键单击项目节点...

    高效的文件夹文件管理工具

    综上所述,"高效的文件夹文件管理工具" 是一个集简洁界面和强大功能于一体的解决方案,不仅简化了文件管理,还提升了工作效率。通过深入理解和利用这类工具,IT专业人士可以更好地驾驭日常工作中的文件操作。

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

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

    python实现文件自动归类

    对于每个文件,我们首先根据其扩展名确定目标文件夹的名称,然后检查该文件夹是否存在,如果不存在则创建。最后,使用`shutil.move()`将文件移动到目标文件夹中。 #### 最佳实践与优化建议 1. **异常处理**:在...

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

    例如,你可以编写一个脚本,遍历指定日期范围内的每一天,为每一天创建一个相应的文件夹,这样便于按照日期对文件进行分类存储。 在Windows中,可以使用`mkdir`命令或者`New-Item` PowerShell cmdlet 来创建文件夹...

    云炫文件管理器V13.0(文件/文件夹批量重命名+文件管理+文件特殊字符删除)

    文件夹名称重命名、各种语言翻译、文件名称、大小、关键词批量归类等。 是一款实用的管理软件,能够批量复制备份文件,或移动文件,省了大量的操作和等待时间。相当于后台运作,前面可以处理其他文件。

    Shell对象实现文件夹浏览对话框[归类].pdf

    首先,Shell对象是微软提供的一种外壳操作函数的封装,它包括了诸如打开或浏览文件夹、查找文件、控制计算机等功能,并且可以访问整个文件系统,获取文件和文件夹的相关信息。这些功能基于OLE自动化服务,使得开发者...

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

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

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

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

    快速文件归类程序代码

    【快速文件归类程序代码】是一个实用的编程项目,它主要使用C#语言在Visual Studio .NET 2005环境下开发。这个程序的核心功能是自动化地整理指定目录及其子目录内的文件,按照用户预设的条件,如文件类型、大小等...

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

    - /proc:一个虚拟文件系统,提供了内核和进程信息的接口。 - /var:存放经常变化的文件,比如系统日志、数据库文件等。 - /tmp:临时文件目录,存放临时文件,通常在系统重启后被清空。 - /mnt:通常用作挂载其他...

Global site tag (gtag.js) - Google Analytics