获取最近下载文件的路径
Fetch path of recently downloaded file
我正在处理一个自动化任务,其中下载了一个文件,我必须提取该下载文件的路径以及名称(我知道该文件将在 下载 文件夹,但我只想要最新下载文件的路径)。最后,我想获取扩展名。但是只有当路径可用时我才能获取扩展,请帮助我提取路径。
这应该可以完成工作:
package foo;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.Date;
import java.util.concurrent.TimeUnit;
public class Bar {
public static File getNewestFileFromDir(File dir) throws IOException {
File newestFile = null;
Date newestCreationDate = null;
File[] files = dir.listFiles(File::isFile);
for (File file: files) {
Path filePath = file.toPath();
BasicFileAttributes attributes = Files.readAttributes(filePath, BasicFileAttributes.class);
long milliseconds = attributes.creationTime().to(TimeUnit.MILLISECONDS);
if ((milliseconds > Long.MIN_VALUE) && (milliseconds < Long.MAX_VALUE)) {
Date creationDate = new Date(attributes.creationTime().to(TimeUnit.MILLISECONDS));
if (newestCreationDate != null) {
if (creationDate.after(newestCreationDate)) {
newestCreationDate = creationDate;
newestFile = file;
}
}
}
}
return newestFile;
}
public static String getFileExtension(File file) {
String extension = "";
String fileName = file.getName();
int i = fileName.lastIndexOf('.');
if (i > 0) {
extension = fileName.substring(i + 1).toLowerCase();
}
return extension;
}
}
我正在处理一个自动化任务,其中下载了一个文件,我必须提取该下载文件的路径以及名称(我知道该文件将在 下载 文件夹,但我只想要最新下载文件的路径)。最后,我想获取扩展名。但是只有当路径可用时我才能获取扩展,请帮助我提取路径。
这应该可以完成工作:
package foo;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.Date;
import java.util.concurrent.TimeUnit;
public class Bar {
public static File getNewestFileFromDir(File dir) throws IOException {
File newestFile = null;
Date newestCreationDate = null;
File[] files = dir.listFiles(File::isFile);
for (File file: files) {
Path filePath = file.toPath();
BasicFileAttributes attributes = Files.readAttributes(filePath, BasicFileAttributes.class);
long milliseconds = attributes.creationTime().to(TimeUnit.MILLISECONDS);
if ((milliseconds > Long.MIN_VALUE) && (milliseconds < Long.MAX_VALUE)) {
Date creationDate = new Date(attributes.creationTime().to(TimeUnit.MILLISECONDS));
if (newestCreationDate != null) {
if (creationDate.after(newestCreationDate)) {
newestCreationDate = creationDate;
newestFile = file;
}
}
}
}
return newestFile;
}
public static String getFileExtension(File file) {
String extension = "";
String fileName = file.getName();
int i = fileName.lastIndexOf('.');
if (i > 0) {
extension = fileName.substring(i + 1).toLowerCase();
}
return extension;
}
}