public interface FileOp
File operations on files and folders.
This makes it possible to override/mock/stub some file operations in unit tests.
| Modifier and Type | Field and Description |
|---|---|
static java.io.File[] |
EMPTY_FILE_ARRAY |
| Modifier and Type | Method and Description |
|---|---|
boolean |
canExecute(java.io.File file) |
boolean |
canWrite(java.io.File file)
Invokes
File.canWrite() on the given file. |
void |
copyFile(java.io.File source,
java.io.File dest)
Copies a binary file.
|
boolean |
createNewFile(java.io.File file)
Creates a new file.
|
boolean |
delete(java.io.File file)
Invokes
File.delete() on the given file. |
void |
deleteFileOrFolder(java.io.File fileOrFolder)
Helper to delete a file or a directory.
|
void |
deleteOnExit(java.io.File file) |
java.io.File |
ensureRealFile(java.io.File in)
If
in is an in-memory file, write it out as a proper file and return it. |
boolean |
exists(java.io.File file)
Invokes
File.exists() on the given file. |
boolean |
isDirectory(java.io.File file)
Invokes
File.isDirectory() on the given file. |
boolean |
isFile(java.io.File file)
Invokes
File.isFile() on the given file. |
boolean |
isSameFile(java.io.File file1,
java.io.File file2)
Checks whether 2 binary files are the same.
|
boolean |
isWindows()
Returns
true if we're on windows, false otherwise. |
long |
lastModified(java.io.File file)
Returns the lastModified attribute of the file.
|
long |
length(java.io.File file)
Invokes
File.length() on the given file. |
java.lang.String[] |
list(java.io.File folder,
java.io.FilenameFilter filenameFilter) |
java.io.File[] |
listFiles(java.io.File file)
Invokes
File.listFiles() on the given file. |
java.io.File[] |
listFiles(java.io.File folder,
java.io.FilenameFilter filenameFilter) |
boolean |
mkdirs(java.io.File file)
Invokes
File.mkdirs() on the given file. |
java.io.InputStream |
newFileInputStream(java.io.File file)
Creates a new
InputStream for the given file. |
java.io.OutputStream |
newFileOutputStream(java.io.File file)
Creates a new
OutputStream for the given file. |
java.io.OutputStream |
newFileOutputStream(java.io.File file,
boolean append)
Creates a new
OutputStream for the given file. |
boolean |
renameTo(java.io.File oldDir,
java.io.File newDir)
Invokes
File.renameTo(File) on the given files. |
void |
setExecutablePermission(java.io.File file)
Sets the executable Unix permission (+x) on a file or folder.
|
boolean |
setLastModified(java.io.File file,
long time) |
void |
setReadOnly(java.io.File file)
Sets the file or directory as read-only.
|
java.nio.file.Path |
toPath(java.io.File file)
Convert the given
File into a Path, using some means appropriate to this
FileOp. |
java.lang.String |
toString(java.io.File f,
java.nio.charset.Charset c) |
void deleteFileOrFolder(@NonNull
java.io.File fileOrFolder)
void setExecutablePermission(@NonNull
java.io.File file)
throws java.io.IOException
This attempts to use File#setExecutable through reflection if it's available. If this is not available, this invokes a chmod exec instead, so there is no guarantee of it being fast.
Caller must make sure to not invoke this under Windows.
file - The file to set permissions on.java.io.IOException - If an I/O error occursvoid setReadOnly(@NonNull
java.io.File file)
throws java.io.IOException
file - The file or directory to set permissions on.java.io.IOExceptionvoid copyFile(@NonNull
java.io.File source,
@NonNull
java.io.File dest)
throws java.io.IOException
source - the source file to copy.dest - the destination file to write.java.io.FileNotFoundException - if the source file doesn't exist.java.io.IOException - if there's a problem reading or writing the file.boolean isSameFile(@NonNull
java.io.File file1,
@NonNull
java.io.File file2)
throws java.io.IOException
file1 - the source file to copyfile2 - the destination file to writejava.io.FileNotFoundException - if the source files don't exist.java.io.IOException - if there's a problem reading the files.boolean exists(@NonNull
java.io.File file)
File.exists() on the given file.boolean isFile(@NonNull
java.io.File file)
File.isFile() on the given file.boolean isDirectory(@NonNull
java.io.File file)
File.isDirectory() on the given file.boolean canWrite(@NonNull
java.io.File file)
File.canWrite() on the given file.long length(@NonNull
java.io.File file)
throws java.io.IOException
File.length() on the given file.java.io.IOExceptionboolean delete(@NonNull
java.io.File file)
File.delete() on the given file.
Note: for a recursive folder version, consider deleteFileOrFolder(File).boolean mkdirs(@NonNull
java.io.File file)
File.mkdirs() on the given file.@NonNull
java.io.File[] listFiles(@NonNull
java.io.File file)
File.listFiles() on the given file.
Contrary to the Java API, this returns an empty array instead of null when the
directory does not exist.boolean renameTo(@NonNull
java.io.File oldDir,
@NonNull
java.io.File newDir)
File.renameTo(File) on the given files.@NonNull
java.io.OutputStream newFileOutputStream(@NonNull
java.io.File file)
throws java.io.IOException
OutputStream for the given file.java.io.IOException@NonNull
java.io.OutputStream newFileOutputStream(@NonNull
java.io.File file,
boolean append)
throws java.io.IOException
OutputStream for the given file.java.io.IOException@NonNull
java.io.InputStream newFileInputStream(@NonNull
java.io.File file)
throws java.io.IOException
InputStream for the given file.java.io.IOExceptionlong lastModified(@NonNull
java.io.File file)
file - The non-null file of which to retrieve the lastModified attribute.File.lastModified()boolean createNewFile(@NonNull
java.io.File file)
throws java.io.IOException
File.createNewFile().java.io.IOExceptionboolean isWindows()
true if we're on windows, false otherwise.boolean canExecute(@NonNull
java.io.File file)
File.canExecute()java.io.File ensureRealFile(@NonNull
java.io.File in)
throws java.io.IOException
in is an in-memory file, write it out as a proper file and return it.
Otherwise just return in.java.io.IOException@NonNull
java.lang.String toString(@NonNull
java.io.File f,
@NonNull
java.nio.charset.Charset c)
throws java.io.IOException
java.io.IOExceptionFiles.toString(File, Charset)@Nullable
java.lang.String[] list(@NonNull
java.io.File folder,
@Nullable
java.io.FilenameFilter filenameFilter)
File.list(FilenameFilter)@Nullable
java.io.File[] listFiles(@NonNull
java.io.File folder,
@Nullable
java.io.FilenameFilter filenameFilter)
File.listFiles(FilenameFilter)void deleteOnExit(java.io.File file)
File.deleteOnExit()boolean setLastModified(@NonNull
java.io.File file,
long time)
throws java.io.IOException
java.io.IOException - if there is an error setting the modification time.File.setLastModified(long)@NonNull
java.nio.file.Path toPath(@NonNull
java.io.File file)
File into a Path, using some means appropriate to this
FileOp.