获得指定目录下特地后缀的文件
import java.io.File;
import java.io.FileFilter;
public class suffixFiles {
public static void main(String[] args) {
new suffixFiles();
}
public suffixFiles() {
File file = new File("myPath/");
File[] txt = file.listFiles(new ExtNameFilter("txt")); // 关键代码
for (File f: txt) {
System.out.println("txt files: " + f);
}
}
}
筛选特定后缀的过滤器
class ExtNameFilter implements FileFilter {
private String suffix;
public ExtNameFilter(String extName) {
this.suffix = extName;
}
@Override
public boolean accept(File pathname) {
if (pathname.getName().toUpperCase().endsWith(suffix.toUpperCase())) {
return true;
}
return false;
}
}
这里没有遍历目录下的文件夹
另外关于文件的几个操作:
// 获得目录下的文件及文件夹
file.listFiles();
File file = new File("filePath");
// 获得目录下文件和文件夹
File[] paths = file.listFiles();
// 判断是否为文件
file.isFile();
// 判断是否文文件夹
file.isDirectory();
// 删除文件或文件夹
file.delete(); // 成功返回true
// 新建文件夹
file.makedir();
file.makedirs(); // 新建包含多个层级的文件夹
// 重命名文件或文件夹
file.renameTo(new File("newFileName"));
new File("oldFile").renameTo(new File("newFile")); // 成功返回true
// 此方法可以移动文件, 但是不能跨硬盘移动文件
读取文件属性操作:
// 文件最后修改时间
file.lastModified();
// 文件可读属性
file.canRead();
// 文件可写属性
file.canWrite();
// 文件隐藏属性
file.isHidden();
// 文件执行属性
file.isExecutable();
// 文件大小
file.size();
// 其他方式1
BasicFileAttributes ra = Files.readAttributes(file, BasicFileAttributes.class);
ra.creationTime();
// 其他方式2
Files.getAttribute(file, "basic:creationTime");
修改文件属性操作:
// 方式1
file.setReadable(readable);
// 方式2
Files.setAttribute(file, "basic:creationTime", fileTime);