所以我现在正在学习递归,我知道如何在JFileChooser中选择的文件夹中获取最大的文件大小。
我不能为我的生活找不到如何获得该文件的名称。这是获取largestFileSize的方法。我如何获得该文件的名称?
public static long largestFileSize(File f) {
if (f.isFile()) {
return f.length();
} else {
long largestSoFar = -1;
for (File file : f.listFiles()) {
largestSoFar = Math.max(largestSoFar, largestFileSize(file));
}
return largestSoFar;
}
}
答案 0 :(得分:6)
String fileName = file.getName()
由于返回文件大小和名称是不切实际的,为什么不返回文件,然后从中获取文件的大小和名称?
public static File largestFile(File f) {
if (f.isFile()) {
return f;
} else {
File largestFile = null;
for (File file : f.listFiles()) {
// only recurse largestFile once
File possiblyLargeFile = largestFile(file);
if (possiblyLargeFile != null) {
if (largestFile == null || possiblyLargeFile.length() > largestFile.length()) {
largestFile = possiblyLargeFile;
}
}
}
return largestFile;
}
}
然后你可以这样做:
String largestFileName = largestFile(file).getName();
long largestFileSize = largestFile(file).length();
编辑:返回任何子目录中的最大File
。如果子目录中不存在任何文件,则返回null
。
答案 1 :(得分:1)
只做
The push refers to a repository [192.168.1.98:5000/complete] (len: 1)
Sending image list
Error: Status 405 trying to push repository complete: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>405 Method Not Allowed</title>\n</head><body>\n<h1>Method Not Allowed</h1>\n<p>The requested method PUT is not allowed for the URL /v1/repositories/complete/.</p>\n</body></html>\n"
然后致电:
public static File largestFile(File f) {
if (f.isFile()) {
return f;
} else {
long largestSoFar = -1;
File largestFile = null;
for (File file : f.listFiles()) {
file = largestFile(file);
if (file != null) {
long newSize = file.length();
if (newSize > largestSoFar) {
largestSoFar = newSize;
largestFile = file;
}
}
}
return largestFile;
}
}