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;
public class file {
public static void main(String[] args) {
List<File> allFile;
try {
allFile = getAllFileSpace("/data/r",
"/data/rb", "0001");
for (File file : allFile) {
System.out.println(file);
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static List<File> getAllFileSpace(String downPath, String workPath,
String kinCode) throws IOException {
File dirFile = new File(downPath);
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);
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);
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);
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) {
if (file == null || !file.exists()) {
return false;
}
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;
}
}