/**
*
*/
package jp.co.jip.aiocr.batch.Y0101;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.attribute.BasicFileAttributes;
import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
* @author PC-209
*
*/
public class file {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<File> allFile;
try {
allFile = getAllFileSpace("/data/r",
"/data/rb", "0001");
for (File file : allFile) {
System.out.println(file);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 获取指定文件夹下所有文件,不含文件夹里的文件
*
* @param kinCode
*
* @param dirFile
* 文件夹
* @return
* @throws IOException
*/
public static List<File> getAllFileSpace(String downPath, String workPath,
String kinCode) throws IOException {
File dirFile = new File(downPath);
// 如果文件夹不存在或着不是文件夹,则返回 null
if (Objects.isNull(dirFile) || !dirFile.exists() || dirFile.isFile()) {
return null;
}
File[] childrenFiles = dirFile.listFiles();
if (Objects.isNull(childrenFiles) || childrenFiles.length == 0) {
return null;
}
List<File> files = new ArrayList<>();
for (File childFile : childrenFiles) {
// 如果是文件,直接添加到结果集合
if (childFile.isFile() && childFile.getName().endsWith(".pdf")) {
files.add(childFile);
}
}
if (files != null && files.size() != 0) {
BasicFileAttributes attr = null;
Path path = files.get(files.size() - 1).toPath();
attr = Files.readAttributes(path, BasicFileAttributes.class);
// 创建时间
Instant instant = attr.creationTime().toInstant();
String format = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS")
.withZone(ZoneId.systemDefault()).format(instant);
System.out.println("scurrtest = " + format);
// //创建单个目录,只有在 D:/AAA/BBB/CCC 存在的情况下才会创建 DDD
File workFile = new File(workPath.concat("/").concat(kinCode)
.concat("/").concat(format).concat("1"));
if (workFile.mkdir()) {
System.out
.println("单文件夹 DDD 创建成功!创建后的文件目录为:"
+ workFile.getPath() + ",上级文件为:"
+ workFile.getParent());
for (int i = 1; i <= files.size(); i++) {
File file = files.get(i - 1);
File newPath = new File(workFile.getPath().concat("/")
.concat(file.getName()));
File newNamePath = new File(workFile.getPath().concat("/")
.concat(format).concat(String.valueOf(i))
.concat(".pdf"));
Files.copy(file.toPath(), newPath.toPath());
if (newPath.exists()) {
newPath.renameTo(newNamePath);
} else {
return null;
}
}
File workFileList = new File(workPath.concat("/")
.concat(kinCode).concat("/F.list"));
if (!workFileList.exists() && !workFileList.isFile()) {
workFileList.createNewFile();
}
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(workFileList,true));
bufferedWriter.write(workFile.getPath().concat("\r\n"));
bufferedWriter.close();
for (File delFile : childrenFiles) {
boolean deleted = deleteFile(delFile);
System.out.println(deleted);
}
} else {
return null;
}
} else {
return null;
}
return files;
}
public static List<File> getAllFileRow(String downPath, String workPath,
String kinCode) throws IOException {
File dirFile = new File(downPath);
// 如果文件夹不存在或着不是文件夹,则返回 null
if (Objects.isNull(dirFile) || !dirFile.exists() || dirFile.isFile()) {
return null;
}
File[] childrenFiles = dirFile.listFiles();
if (Objects.isNull(childrenFiles) || childrenFiles.length == 0) {
return null;
}
List<File> files = new ArrayList<>();
for (int i = 1; i <= childrenFiles.length; i++ ) {
File childFile =childrenFiles[i-1];
// 如果是文件,直接添加到结果集合
if (childFile.isFile() && childFile.getName().endsWith(".pdf")) {
files.add(childFile);
BasicFileAttributes attr = null;
Path path = childFile.toPath();
attr = Files.readAttributes(path, BasicFileAttributes.class);
// 创建时间
Instant instant = attr.creationTime().toInstant();
String format = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS")
.withZone(ZoneId.systemDefault()).format(instant);
System.out.println("scurrtest = " + format);
// //创建单个目录,只有在 D:/AAA/BBB/CCC 存在的情况下才会创建 DDD
File workFile = new File(workPath.concat("/").concat(kinCode)
.concat("/").concat(format).concat(String.valueOf(i-1)));
if (workFile.mkdir()) {
System.out
.println("单文件夹 DDD 创建成功!创建后的文件目录为:"
+ workFile.getPath() + ",上级文件为:"
+ workFile.getParent());
File file = childFile;
File newPath = new File(workFile.getPath().concat("/")
.concat(file.getName()));
File newNamePath = new File(workFile.getPath().concat("/")
.concat(format).concat(String.valueOf(i-1)).concat("1")
.concat(".pdf"));
Files.copy(file.toPath(), newPath.toPath());
if (newPath.exists()) {
newPath.renameTo(newNamePath);
} else {
return null;
}
File workFileList = new File(workPath.concat("/")
.concat(kinCode).concat("/Y0101_PDF.list"));
if (!workFileList.exists() && !workFileList.isFile()) {
workFileList.createNewFile();
}
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(workFileList,true));
bufferedWriter.write(workFile.getPath().concat("\r\n"));
bufferedWriter.close();
} else {
return null;
}
}
}
for (File delFile : childrenFiles) {
boolean deleted = deleteFile(delFile);
System.out.println(deleted);
}
return files;
}
public static Boolean deleteFile(File file) {
// 判断文件不为null或文件目录存在
if (file == null || !file.exists()) {
return false;
}
// // 判断子目录是否存在子目录,如果是文件则删除
// if (file.isDirectory()) {
// // 获取目录下子文件
// File[] files = file.listFiles();
// // 遍历该目录下的文件对象
// for (File f : files) {
// // 递归删除目录下的文件
// deleteFile(f);
// }
// file.delete();
// System.out.println("目录名:" + file.getName());
// } else {
// // 文件夹删除
// file.delete();
// System.out.println("文件名:" + file.getName());
// }
// 判断子目录是否存在子目录,如果是文件则删除
File[] files = file.listFiles();
if (!Objects.isNull(files)) {
// 获取目录下子文件
// 遍历该目录下的文件对象
for (File f : files) {
// 递归删除目录下的文件
deleteFile(f);
}
file.delete();
System.out.println("目录名:" + file.getName());
} else {
// 文件夹删除
file.delete();
System.out.println("文件名:" + file.getName());
}
return true;
}
}
文件获取copy迁移重命名删除
最新推荐文章于 2025-11-24 16:00:00 发布
本文介绍了一种批量处理文件的方法,包括获取指定路径下的所有PDF文件,并按创建时间进行组织和重命名。此外,还实现了将这些文件移动到新的目录结构中,并记录操作过程。
1073

被折叠的 条评论
为什么被折叠?



