File filter for matching files containing a "magic number". A magic number is a unique series of bytes common to all files of a specific file format. For instance, all Java class files begin with the bytes 0xCAFEBABE
.
File dir = new File("."); MagicNumberFileFilter javaClassFileFilter = MagicNumberFileFilter(new byte[] {(byte) 0xCA, (byte) 0xFE, (byte) 0xBA, (byte) 0xBE}); String[] javaClassFiles = dir.list(javaClassFileFilter); for (String javaClassFile : javaClassFiles) { System.out.println(javaClassFile); }
Sometimes, such as in the case of TAR files, the magic number will be offset by a certain number of bytes in the file. In the case of TAR archive files, this offset is 257 bytes.
File dir = new File("."); MagicNumberFileFilter tarFileFilter = MagicNumberFileFilter("ustar", 257); String[] tarFiles = dir.list(tarFileFilter); for (String tarFile : tarFiles) { System.out.println(tarFile); }
@since Commons IO 2.0
@see FileFilterUtils#magicNumberFileFilter(byte[])
@see FileFilterUtils#magicNumberFileFilter(String)
@see FileFilterUtils#magicNumberFileFilter(byte[],long)
@see FileFilterUtils#magicNumberFileFilter(String,long)
|
|