Class SFileHandle
java.lang.Object
com.prineside.tdi2.managers.script.fs.SFileHandle
A sandboxed wrapper for com.badlogic.gdx.files.FileHandle.
Only accesses FileType.Local files (those in the game's directory).
Currently accessible dirs:
- cache/script-temp-files/
- cache/script-data/
- i18n/
- levels/
- models/
- particles/
- res/ (except res/luaj/)
- resourcepacks/
- scripts/
- shaders/
-
Nested Class Summary
Nested Classes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic void
assertAccessible
(String path) Check if the path is accessible for Lua scripts.Returns a handle to the child with the specified name.void
copyTo
(SFileHandle dest) Copies this file or directory to the specified file or directory.boolean
delete()
Deletes this file or empty directory and returns success.boolean
Deletes this file or directory and all children, recursively.void
Deletes all children of this directory, recursively.void
emptyDirectory
(boolean preserveTree) Deletes all children of this directory, recursively.boolean
boolean
exists()
Returns true if the file exists.Returns the file extension (without the dot) or an empty string if the file name doesn't contain a dot.int
hashCode()
static boolean
isAccessible
(String path) Same as assertAccessible() but simply returns a boolean, does not throw exceptionsboolean
Returns true if this file is a directory.long
Returns the last modified time in milliseconds for this file.long
length()
Returns the length in bytes of this file, or 0 if this file is a directory, does not exist, or the size cannot otherwise be determined.list()
Returns the paths to the children of this directory.list
(FileFilter filter) Returns the paths to the children of this directory that satisfy the specified filter.list
(FilenameFilter filter) Returns the paths to the children of this directory that satisfy the specified filter.Returns the paths to the children of this directory with the specified suffix.map()
Attempts to memory map this file in READ_ONLY mode.map
(FileChannel.MapMode mode) Attempts to memory map this file.void
mkdirs()
void
moveTo
(SFileHandle dest) Moves this file to the specified file, overwriting the file if it already exists.name()
parent()
path()
read()
Returns a stream for reading this file as bytes.read
(int bufferSize) Returns a buffered stream for reading this file as bytes.byte[]
Reads the entire file into a byte array.int
readBytes
(byte[] bytes, int offset, int size) Reads the entire file into the byte array.reader()
Returns a reader for reading this file as characters the platform's default charset.reader
(int bufferSize) Returns a buffered reader for reading this file as characters using the platform's default charset.Returns a buffered reader for reading this file as characters.Returns a reader for reading this file as characters.Reads the entire file into a string using the platform's default charset.readString
(String charset) Reads the entire file into a string using the specified charset.Returns a handle to the sibling with the specified name.toString()
write
(boolean append) Returns a stream for writing to this file.write
(boolean append, int bufferSize) Returns a buffered stream for writing to this file.void
write
(InputStream input, boolean append) Reads the remaining bytes from the specified stream and writes them to this file.void
writeBytes
(byte[] bytes, boolean append) Writes the specified bytes to the file.void
writeBytes
(byte[] bytes, int offset, int length, boolean append) Writes the specified bytes to the file.writer
(boolean append) Returns a writer for writing to this file using the default charset.Returns a writer for writing to this file.void
writeString
(String string, boolean append) Writes the specified string to the file using the default charset.void
writeString
(String string, boolean append, String charset) Writes the specified string to the file using the specified charset.
-
Constructor Details
-
SFileHandle
Create a handle for a file or a dir. Will throw an exception if path is not accessible for Lua scripts.- Parameters:
path
- path to the file
-
-
Method Details
-
assertAccessible
Check if the path is accessible for Lua scripts. Will throw an exception if it is not. -
isAccessible
Same as assertAccessible() but simply returns a boolean, does not throw exceptions -
path
- Returns:
- the path of the file as specified on construction, e.g. Gdx.files.internal("dir/file.png") -> dir/file.png. backward slashes will be replaced by forward slashes.
-
name
- Returns:
- the name of the file, without any parent paths.
-
extension
Returns the file extension (without the dot) or an empty string if the file name doesn't contain a dot. -
nameWithoutExtension
- Returns:
- the name of the file, without parent paths or the extension.
-
pathWithoutExtension
- Returns:
- the path and filename without the extension, e.g. dir/dir2/file.png -> dir/dir2/file. backward slashes will be returned as forward slashes.
-
read
Returns a stream for reading this file as bytes.- Throws:
GdxRuntimeException
- if the file handle represents a directory, doesn't exist, or could not be read.
-
read
Returns a buffered stream for reading this file as bytes.- Throws:
GdxRuntimeException
- if the file handle represents a directory, doesn't exist, or could not be read.
-
reader
Returns a reader for reading this file as characters the platform's default charset.- Throws:
GdxRuntimeException
- if the file handle represents a directory, doesn't exist, or could not be read.
-
reader
Returns a reader for reading this file as characters.- Throws:
GdxRuntimeException
- if the file handle represents a directory, doesn't exist, or could not be read.
-
reader
Returns a buffered reader for reading this file as characters using the platform's default charset.- Throws:
GdxRuntimeException
- if the file handle represents a directory, doesn't exist, or could not be read.
-
reader
Returns a buffered reader for reading this file as characters.- Throws:
GdxRuntimeException
- if the file handle represents a directory, doesn't exist, or could not be read.
-
readString
Reads the entire file into a string using the platform's default charset.- Throws:
GdxRuntimeException
- if the file handle represents a directory, doesn't exist, or could not be read.
-
readString
Reads the entire file into a string using the specified charset.- Parameters:
charset
- If null the default charset is used.- Throws:
GdxRuntimeException
- if the file handle represents a directory, doesn't exist, or could not be read.
-
readBytes
public byte[] readBytes()Reads the entire file into a byte array.- Throws:
GdxRuntimeException
- if the file handle represents a directory, doesn't exist, or could not be read.
-
readBytes
public int readBytes(byte[] bytes, int offset, int size) Reads the entire file into the byte array. The byte array must be big enough to hold the file's data.- Parameters:
bytes
- the array to load the file intooffset
- the offset to start writing bytessize
- the number of bytes to read, seelength()
- Returns:
- the number of read bytes
-
map
Attempts to memory map this file in READ_ONLY mode. Android files must not be compressed.- Throws:
GdxRuntimeException
- if this file handle represents a directory, doesn't exist, or could not be read, or memory mapping fails, or is aFiles.FileType.Classpath
file.
-
map
Attempts to memory map this file. Android files must not be compressed.- Throws:
GdxRuntimeException
- if this file handle represents a directory, doesn't exist, or could not be read, or memory mapping fails, or is aFiles.FileType.Classpath
file.
-
write
Returns a stream for writing to this file. Parent directories will be created if necessary.- Parameters:
append
- If false, this file will be overwritten if it exists, otherwise it will be appended.- Throws:
GdxRuntimeException
- if this file handle represents a directory, if it is aFiles.FileType.Classpath
orFiles.FileType.Internal
file, or if it could not be written.
-
write
Returns a buffered stream for writing to this file. Parent directories will be created if necessary.- Parameters:
append
- If false, this file will be overwritten if it exists, otherwise it will be appended.bufferSize
- The size of the buffer.- Throws:
GdxRuntimeException
- if this file handle represents a directory, if it is aFiles.FileType.Classpath
orFiles.FileType.Internal
file, or if it could not be written.
-
write
Reads the remaining bytes from the specified stream and writes them to this file. The stream is closed. Parent directories will be created if necessary.- Parameters:
append
- If false, this file will be overwritten if it exists, otherwise it will be appended.- Throws:
GdxRuntimeException
- if this file handle represents a directory, if it is aFiles.FileType.Classpath
orFiles.FileType.Internal
file, or if it could not be written.
-
writer
Returns a writer for writing to this file using the default charset. Parent directories will be created if necessary.- Parameters:
append
- If false, this file will be overwritten if it exists, otherwise it will be appended.- Throws:
GdxRuntimeException
- if this file handle represents a directory, if it is aFiles.FileType.Classpath
orFiles.FileType.Internal
file, or if it could not be written.
-
writer
Returns a writer for writing to this file. Parent directories will be created if necessary.- Parameters:
append
- If false, this file will be overwritten if it exists, otherwise it will be appended.charset
- May be null to use the default charset.- Throws:
GdxRuntimeException
- if this file handle represents a directory, if it is aFiles.FileType.Classpath
orFiles.FileType.Internal
file, or if it could not be written.
-
writeString
Writes the specified string to the file using the default charset. Parent directories will be created if necessary.- Parameters:
append
- If false, this file will be overwritten if it exists, otherwise it will be appended.- Throws:
GdxRuntimeException
- if this file handle represents a directory, if it is aFiles.FileType.Classpath
orFiles.FileType.Internal
file, or if it could not be written.
-
writeString
Writes the specified string to the file using the specified charset. Parent directories will be created if necessary.- Parameters:
append
- If false, this file will be overwritten if it exists, otherwise it will be appended.charset
- May be null to use the default charset.- Throws:
GdxRuntimeException
- if this file handle represents a directory, if it is aFiles.FileType.Classpath
orFiles.FileType.Internal
file, or if it could not be written.
-
writeBytes
public void writeBytes(byte[] bytes, boolean append) Writes the specified bytes to the file. Parent directories will be created if necessary.- Parameters:
append
- If false, this file will be overwritten if it exists, otherwise it will be appended.- Throws:
GdxRuntimeException
- if this file handle represents a directory, if it is aFiles.FileType.Classpath
orFiles.FileType.Internal
file, or if it could not be written.
-
writeBytes
public void writeBytes(byte[] bytes, int offset, int length, boolean append) Writes the specified bytes to the file. Parent directories will be created if necessary.- Parameters:
append
- If false, this file will be overwritten if it exists, otherwise it will be appended.- Throws:
GdxRuntimeException
- if this file handle represents a directory, if it is aFiles.FileType.Classpath
orFiles.FileType.Internal
file, or if it could not be written.
-
list
Returns the paths to the children of this directory. Returns an empty list if this file handle represents a file and not a directory. On the desktop, anFiles.FileType.Internal
handle to a directory on the classpath will return a zero length array.- Throws:
GdxRuntimeException
- if this file is anFiles.FileType.Classpath
file.
-
list
Returns the paths to the children of this directory that satisfy the specified filter. Returns an empty list if this file handle represents a file and not a directory. On the desktop, anFiles.FileType.Internal
handle to a directory on the classpath will return a zero length array.- Parameters:
filter
- theFileFilter
to filter files- Throws:
GdxRuntimeException
- if this file is anFiles.FileType.Classpath
file.
-
list
Returns the paths to the children of this directory that satisfy the specified filter. Returns an empty list if this file handle represents a file and not a directory. On the desktop, anFiles.FileType.Internal
handle to a directory on the classpath will return a zero length array.- Parameters:
filter
- theFilenameFilter
to filter files- Throws:
GdxRuntimeException
- if this file is anFiles.FileType.Classpath
file.
-
list
Returns the paths to the children of this directory with the specified suffix. Returns an empty list if this file handle represents a file and not a directory. On the desktop, anFiles.FileType.Internal
handle to a directory on the classpath will return a zero length array.- Throws:
GdxRuntimeException
- if this file is anFiles.FileType.Classpath
file.
-
isDirectory
public boolean isDirectory()Returns true if this file is a directory. Always returns false for classpath files. On Android, anFiles.FileType.Internal
handle to an empty directory will return false. On the desktop, anFiles.FileType.Internal
handle to a directory on the classpath will return false. -
child
Returns a handle to the child with the specified name. -
sibling
Returns a handle to the sibling with the specified name.- Throws:
GdxRuntimeException
- if this file is the root.
-
parent
-
mkdirs
public void mkdirs()- Throws:
GdxRuntimeException
- if this file handle is aFiles.FileType.Classpath
orFiles.FileType.Internal
file.
-
exists
public boolean exists()Returns true if the file exists. On Android, aFiles.FileType.Classpath
orFiles.FileType.Internal
handle to a directory will always return false. Note that this can be very slow for internal files on Android! -
delete
public boolean delete()Deletes this file or empty directory and returns success. Will not delete a directory that has children.- Throws:
GdxRuntimeException
- if this file handle is aFiles.FileType.Classpath
orFiles.FileType.Internal
file.
-
deleteDirectory
public boolean deleteDirectory()Deletes this file or directory and all children, recursively.- Throws:
GdxRuntimeException
- if this file handle is aFiles.FileType.Classpath
orFiles.FileType.Internal
file.
-
emptyDirectory
public void emptyDirectory()Deletes all children of this directory, recursively.- Throws:
GdxRuntimeException
- if this file handle is aFiles.FileType.Classpath
orFiles.FileType.Internal
file.
-
emptyDirectory
public void emptyDirectory(boolean preserveTree) Deletes all children of this directory, recursively. Optionally preserving the folder structure.- Throws:
GdxRuntimeException
- if this file handle is aFiles.FileType.Classpath
orFiles.FileType.Internal
file.
-
copyTo
Copies this file or directory to the specified file or directory. If this handle is a file, then 1) if the destination is a file, it is overwritten, or 2) if the destination is a directory, this file is copied into it, or 3) if the destination doesn't exist,mkdirs()
is called on the destination's parent and this file is copied into it with a new name. If this handle is a directory, then 1) if the destination is a file, GdxRuntimeException is thrown, or 2) if the destination is a directory, this directory is copied into it recursively, overwriting existing files, or 3) if the destination doesn't exist,mkdirs()
is called on the destination and this directory is copied into it recursively.- Throws:
GdxRuntimeException
- if the destination file handle is aFiles.FileType.Classpath
orFiles.FileType.Internal
file, or copying failed.
-
moveTo
Moves this file to the specified file, overwriting the file if it already exists.- Throws:
GdxRuntimeException
- if the source or destination file handle is aFiles.FileType.Classpath
orFiles.FileType.Internal
file.
-
length
public long length()Returns the length in bytes of this file, or 0 if this file is a directory, does not exist, or the size cannot otherwise be determined. -
lastModified
public long lastModified()Returns the last modified time in milliseconds for this file. Zero is returned if the file doesn't exist. Zero is returned forFiles.FileType.Classpath
files. On Android, zero is returned forFiles.FileType.Internal
files. On the desktop, zero is returned forFiles.FileType.Internal
files on the classpath. -
equals
-
hashCode
public int hashCode() -
toString
-