例1:查看文件、文件夹的长度(大小)。
1 import java.io.File; 2 3 import org.apache.commons.io.FileUtils; 4 5 public class Main { 6 7 public static void main(String[] args) { 8 long length = FileUtils.sizeOf(new File("J:/PrtSc/20190321/1.png")); 9 System.out.println(length); 10 11 length = FileUtils.sizeOf(new File("J:/PrtSc/20190321")); 12 System.out.println(length); 13 14 length = FileUtils.sizeOfDirectory(new File("J:/PrtSc/20190321")); 15 System.out.println(length); 16 } 17 }
控制台的输出:
23415 1015221 1015221
例2:列出指定目录下的非空文件。
1 import java.io.File; 2 import java.util.Collection; 3 4 import org.apache.commons.io.FileUtils; 5 import org.apache.commons.io.filefilter.EmptyFileFilter; 6 7 public class Main { 8 9 public static void main(String[] args) { 10 System.out.println(System.getProperty("user.dir") + "\n"); 11 12 Collection<File> files1 = FileUtils.listFiles(new File(System.getProperty("user.dir")), EmptyFileFilter.NOT_EMPTY, null); 13 for (File file: files1) { 14 System.out.println(file.getAbsolutePath()); 15 } 16 17 System.out.println("\n" + new File("empty.txt").length() + " bytes"); 18 } 19 }
因为empty.txt是一个空文件,所以不会被列出来。
控制台的输出:
I:\Java\mycode\CommonsIO
I:\Java\mycode\CommonsIO\.classpath
I:\Java\mycode\CommonsIO\.project
0 bytes
如果向empty.txt写入内容,再次运行程序,empty.txt就会被列出。因为此时empty.txt不是一个空文件。
控制台的输出:
I:\Java\mycode\CommonsIO
I:\Java\mycode\CommonsIO\.classpath
I:\Java\mycode\CommonsIO\.project
I:\Java\mycode\CommonsIO\empty.txt
47 bytes
例3:列出指定目录,以及其子目录下的非空文件。
1 import java.io.File; 2 import java.util.Collection; 3 4 import org.apache.commons.io.FileUtils; 5 import org.apache.commons.io.filefilter.DirectoryFileFilter; 6 import org.apache.commons.io.filefilter.EmptyFileFilter; 7 8 public class Main { 9 10 public static void main(String[] args) { 11 System.out.println(System.getProperty("user.dir") + "\n"); 12 13 Collection<File> files1 = FileUtils.listFiles(new File(System.getProperty("user.dir")), EmptyFileFilter.NOT_EMPTY, DirectoryFileFilter.INSTANCE); 14 for (File file: files1) { 15 System.out.println(file.getAbsolutePath()); 16 } 17 } 18 }
控制台的输出:
I:\Java\mycode\CommonsIO I:\Java\mycode\CommonsIO\.classpath I:\Java\mycode\CommonsIO\.project I:\Java\mycode\CommonsIO\.settings\org.eclipse.jdt.core.prefs I:\Java\mycode\CommonsIO\bin\com\mk\Main.class I:\Java\mycode\CommonsIO\lib\commons-io-2.6-sources.jar I:\Java\mycode\CommonsIO\lib\commons-io-2.6.jar I:\Java\mycode\CommonsIO\src\com\mk\Main.java
例4.1:列出指定目录下,指定后缀的文件。
1 import java.io.File; 2 import java.util.Collection; 3 4 import org.apache.commons.io.FileUtils; 5 import org.apache.commons.io.filefilter.DirectoryFileFilter; 6 import org.apache.commons.io.filefilter.SuffixFileFilter; 7 8 public class Main { 9 10 public static void main(String[] args) { 11 System.out.println(System.getProperty("user.dir") + "\n"); 12 13 Collection<File> files1 = FileUtils.listFiles(new File(System.getProperty("user.dir")), new SuffixFileFilter("java"), DirectoryFileFilter.INSTANCE); 14 for (File file: files1) { 15 System.out.println(file.getAbsolutePath()); 16 } 17 } 18 }
控制台的输出:
I:\Java\mycode\CommonsIO
I:\Java\mycode\CommonsIO\src\com\mk\Main.java
例4.2:列出指定目录下,指定后缀的文件。
1 import java.io.File; 2 import java.util.Collection; 3 4 import org.apache.commons.io.FileUtils; 5 import org.apache.commons.io.filefilter.DirectoryFileFilter; 6 import org.apache.commons.io.filefilter.FileFilterUtils; 7 import org.apache.commons.io.filefilter.SuffixFileFilter; 8 9 public class Main { 10 11 public static void main(String[] args) { 12 System.out.println(System.getProperty("user.dir") + "\n"); 13 14 Collection<File> files1 = FileUtils.listFiles(new File(System.getProperty("user.dir")), FileFilterUtils.or(new SuffixFileFilter("java"), new SuffixFileFilter("class")), DirectoryFileFilter.INSTANCE); 15 for (File file: files1) { 16 System.out.println(file.getAbsolutePath()); 17 } 18 } 19 }
控制台的输出:
I:\Java\mycode\CommonsIO I:\Java\mycode\CommonsIO\bin\com\mk\Main.class I:\Java\mycode\CommonsIO\src\com\mk\Main.java
原文:https://www.cnblogs.com/Satu/p/10853370.html