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.IOException
void 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.IOException
boolean 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.IOException
long 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.IOException
boolean 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.IOException
Files.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
.