Package org.apache.commons.io
Enum FileSystem
- java.lang.Object
-
- java.lang.Enum<FileSystem>
-
- org.apache.commons.io.FileSystem
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Comparable<FileSystem>
public enum FileSystem extends java.lang.Enum<FileSystem>
Abstracts an OS' file system details, currently supporting the single use case of converting a file name String to a legal file name withtoLegalFileName(String, char)
.The starting point of any operation is
getCurrent()
which gets you the enum for the file system that matches the OS hosting the running JVM.- Since:
- 2.7
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description int
getBlockSize()
Gets the file allocation block size in bytes.static FileSystem
getCurrent()
Gets the current file system.char[]
getIllegalFileNameChars()
Gets a cloned copy of the illegal characters for this file system.int[]
getIllegalFileNameCodePoints()
Gets a cloned copy of the illegal code points for this file system.int
getMaxFileNameLength()
Gets the maximum length for file names.int
getMaxPathLength()
Gets the maximum length of the path to a file.char
getNameSeparator()
Gets the name separator, '\\' on Windows, '/' on Linux.java.lang.String[]
getReservedFileNames()
Gets a cloned copy of the reserved file names.boolean
isCasePreserving()
Tests whether this file system preserves case.boolean
isCaseSensitive()
Tests whether this file system is case-sensitive.boolean
isLegalFileName(java.lang.CharSequence candidate)
Tests if a candidate file name (without a path) such as"filename.ext"
or"filename"
is a potentially legal file name.boolean
isReservedFileName(java.lang.CharSequence candidate)
Tests whether the given string is a reserved file name.java.lang.String
normalizeSeparators(java.lang.String path)
Converts all separators to the Windows separator of backslash.boolean
supportsDriveLetter()
Tests whether this file system support driver letters.java.lang.String
toLegalFileName(java.lang.String candidate, char replacement)
Converts a candidate file name (without a path) like"filename.ext"
or"filename"
to a legal file name.static FileSystem
valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name.static FileSystem[]
values()
Returns an array containing the constants of this enum type, in the order they are declared.
-
-
-
Enum Constant Detail
-
GENERIC
public static final FileSystem GENERIC
Generic file system.
-
LINUX
public static final FileSystem LINUX
Linux file system.
-
MAC_OSX
public static final FileSystem MAC_OSX
MacOS file system.
-
WINDOWS
public static final FileSystem WINDOWS
Windows file system.The reserved characters are defined in the Naming Conventions (microsoft.com).
-
-
Method Detail
-
values
public static FileSystem[] values()
Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:for (FileSystem c : FileSystem.values()) System.out.println(c);
- Returns:
- an array containing the constants of this enum type, in the order they are declared
-
valueOf
public static FileSystem valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)- Parameters:
name
- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
java.lang.IllegalArgumentException
- if this enum type has no constant with the specified namejava.lang.NullPointerException
- if the argument is null
-
getCurrent
public static FileSystem getCurrent()
Gets the current file system.- Returns:
- the current file system
-
getBlockSize
public int getBlockSize()
Gets the file allocation block size in bytes.- Returns:
- the file allocation block size in bytes.
- Since:
- 2.12.0
-
getIllegalFileNameChars
public char[] getIllegalFileNameChars()
Gets a cloned copy of the illegal characters for this file system.- Returns:
- the illegal characters for this file system.
-
getIllegalFileNameCodePoints
public int[] getIllegalFileNameCodePoints()
Gets a cloned copy of the illegal code points for this file system.- Returns:
- the illegal code points for this file system.
- Since:
- 2.12.0
-
getMaxFileNameLength
public int getMaxFileNameLength()
Gets the maximum length for file names. The file name does not include folders.- Returns:
- the maximum length for file names.
-
getMaxPathLength
public int getMaxPathLength()
Gets the maximum length of the path to a file. This can include folders.- Returns:
- the maximum length of the path to a file.
-
getNameSeparator
public char getNameSeparator()
Gets the name separator, '\\' on Windows, '/' on Linux.- Returns:
- '\\' on Windows, '/' on Linux.
- Since:
- 2.12.0
-
getReservedFileNames
public java.lang.String[] getReservedFileNames()
Gets a cloned copy of the reserved file names.- Returns:
- the reserved file names.
-
isCasePreserving
public boolean isCasePreserving()
Tests whether this file system preserves case.- Returns:
- Whether this file system preserves case.
-
isCaseSensitive
public boolean isCaseSensitive()
Tests whether this file system is case-sensitive.- Returns:
- Whether this file system is case-sensitive.
-
isLegalFileName
public boolean isLegalFileName(java.lang.CharSequence candidate)
Tests if a candidate file name (without a path) such as"filename.ext"
or"filename"
is a potentially legal file name. If the file name length exceedsgetMaxFileNameLength()
, or if it contains an illegal character then the check fails.- Parameters:
candidate
- a candidate file name (without a path) like"filename.ext"
or"filename"
- Returns:
true
if the candidate name is legal
-
isReservedFileName
public boolean isReservedFileName(java.lang.CharSequence candidate)
Tests whether the given string is a reserved file name.- Parameters:
candidate
- the string to test- Returns:
true
if the given string is a reserved file name.
-
normalizeSeparators
public java.lang.String normalizeSeparators(java.lang.String path)
Converts all separators to the Windows separator of backslash.- Parameters:
path
- the path to be changed, null ignored- Returns:
- the updated path
- Since:
- 2.12.0
-
supportsDriveLetter
public boolean supportsDriveLetter()
Tests whether this file system support driver letters.Windows supports driver letters as do other operating systems. Whether these other OS's still support Java like OS/2, is a different matter.
- Returns:
- whether this file system support driver letters.
- Since:
- 2.9.0
- See Also:
- Operating systems that use drive letter assignment
-
toLegalFileName
public java.lang.String toLegalFileName(java.lang.String candidate, char replacement)
Converts a candidate file name (without a path) like"filename.ext"
or"filename"
to a legal file name. Illegal characters in the candidate name are replaced by thereplacement
character. If the file name length exceedsgetMaxFileNameLength()
, then the name is truncated togetMaxFileNameLength()
.- Parameters:
candidate
- a candidate file name (without a path) like"filename.ext"
or"filename"
replacement
- Illegal characters in the candidate name are replaced by this character- Returns:
- a String without illegal characters
-
-