Constructs a new finder that selects all paths with a name that matches filter
and are
immediate children of paths selected by this finder.
Constructs a new finder that selects all paths with a name that matches filter
and are
immediate children of paths selected by this finder.
Constructs a new finder that selects all paths with a name that matches filter
and are
descendants of paths selected by this finder.
Constructs a new finder that selects all paths with a name that matches filter
and are
descendants of paths selected by this finder.
The union of the paths found by this PathSet
with the paths found by 'paths'.
The union of the paths found by this PathSet
with the paths found by 'paths'.
Excludes all paths from excludes
from the paths selected by this PathSet
.
Excludes all paths from excludes
from the paths selected by this PathSet
.
If child is relative, creates a new Path based on the current path with the child appended.
If child is relative, creates a new Path based on the current path with the child appended. If child is absolute the child is returned
Examples include:
path / "child" / "grandchild"
path / "child/grandchild"
path / ".." / "sibling"
path / "../sibling"
A new path with the specified path appended
#\(String)
Alias for /(child.
Alias for /(child.name)
A new path with the specified path appended
#/(String)
Alias for /(Path)
Alias for /(Path)
#/(Path)
Alias for #/(String)
Alias for #/(String)
#/(String)
Reads the access modes from the file and returns the Set This does not lock the file so the modes could be out of date even by the time the method returns if used in a heavily parallel environment
Reads the access modes from the file and returns the Set This does not lock the file so the modes could be out of date even by the time the method returns if used in a heavily parallel environment
the access modes set on the file
Sets the standard access modes on the underlying path.
Sets the standard access modes on the underlying path. If the underlying object does not exist it will throw an exception. If the underlying system does not support support the mode the mode will be ignored
the modes to set on the file in (if possible) a single atomic update
Short cut for setting the standard access modes on the underlying path.
Short cut for setting the standard access modes on the underlying path. If the underlying object does not exist it will throw an exception. If the underlying system does not support support the mode the mode will be ignored
string representation of the modes. The standard options include r - read, w - write, e - execute. The options are filesystem dependent
Append a string to the end of the Seekable object.
Append a string to the end of the Seekable object.
the data to write
the codec of the string to be written. The string will
be converted to the encoding of codec
Append bytes to the end of a file
Append bytes to the end of a file
Important: The use of an Array is highly recommended because normally arrays can be more efficiently written using the underlying APIs
The data to write. This can be any type that has a OutputConverter associated with it. There are predefined $outputConverters for several types. See the OutputConverter object for the predefined types and for objects to simplify implementing custom OutputConverter
$converterParam
Since the OutputConverter object defined for writing Ints encodes Ints using 4 bytes this method is provided to simply write an array of Ints as if they are Bytes.
Since the OutputConverter object defined for writing Ints encodes Ints using 4 bytes this method is provided to simply write an array of Ints as if they are Bytes. In other words just taking the first byte. This is pretty common in Java.io style IO. IE
outputStream.write(1)
1 is written as a single byte.
Append several strings to the end of the Seekable object.
Append several strings to the end of the Seekable object.
The strings to write
A string to add between each string. It is not added to the before the first string or after the last.
The codec of the strings to be written. The strings will
be converted to the encoding of codec
This method aspires to be the fastest way to read a stream of known length into memory.
This method aspires to be the fastest way to read a stream of known length into memory.
Obtains a Traversable for conveniently processing the resource as bytes.
Obtains a Traversable for conveniently processing the file as Ints.
The characters in the object.
The characters in the object.
If the codec is not the same as the source codec (the codec of the underlying data) then the characters will converted to the desired codec.
The codec representing the desired encoding of the characters @return an traversable of all the characters
Check if the referenced file both exists and be accessed with the requested modes
Check modes using the rwx characters.
Check modes using the rwx characters. The string can be from 1-3 characters long and can be r w x in any order. Spaces are ignored
An iterable over the contents of the directory.
An iterable over the contents of the directory. This is simply walkTree with depth=1.
The filter parameter restricts what paths are available through the PathSet. This is different from using the filter, filterFold or filterEach methods in PathSet because PathMatchers can be used by the underlying filesystem natively and can potentially provide dramatically improved performance for very large directories.
A filter that restricts what paths are available in the PathSet If the filter is a PathMatcher and the underlying filesystem supports the PatchMatcher implementation then the maximum performance will be achieved. All Paths that are passed to matcher is relative to this Path Default is PathMatcher.All @return A managed resource managing a PathSet.
FileSystem#matcher(String,String)
,Path.Matching
,Path#walkTree
Compares this path to the other lexigraphically.
Compares this path to the other lexigraphically.
Copy data from an input to this output.
Copy data from an input to this output. Input will call this method from copyTo if it does not know how to efficiently copy the data. This method thus will copy as effiently as possible and if all else fails simply write the bytes
the source to read data from
do not forward request to input's copyTo method. Often only one end of the transaction will know how to efficiently transfer data so a common pattern is to check the input and see if the type of the Input object is a known type. If not then the input object will be sent the request. However, to prevent an infinite loop the finalize will be set to true so the request is not then forwarded back to copyFrom
Copy all data from this Input object to the Output object as efficiently as possible.
Copy all data from this Input object to the Output object as efficiently as possible.
output sink to copy the data to
do not forward request to output's copyFrom method. Often only one end of the transaction will know how to efficiently transfer data so a common pattern is to check the output and see if the type of the Output object is a known type. If not then the output object will be sent the request. However, to prevent an infinite loop the finalize will be set to true so the request is not then forwarded back to copyTo
Copy a the contents of a Path representing a file to a new destination a check has been performed that the file exists, so barring a race condition with another thread or process this path does exist and is a file.
Copy a the contents of a Path representing a file to a new destination a check has been performed that the file exists, so barring a race condition with another thread or process this path does exist and is a file. Dest will not exist at the time of this call.
Copy the underlying object if it exists to the target location.
Copy the underlying object if it exists to the target location. If the underlying object is a directory it is not copied recursively.
the target path to copy the filesystem object to.
if true then copy the File attributes of the object as well as the data. True by default
if true then replace any existing target object unless it is a non-empty directory in which case an IOException is thrown. False by default
@return the path to the new copy
Create the directory referenced by this path.
Create the directory referenced by this path.
If failIfExists then IOException is thrown if the file already exists. In the next Java 7 only version it will throw FileAlreadyExistsException
An exception is always thrown if the file is a directory and that directory contains children
An exception will also be thrown if the parent directory does not have write permission
If true then the containing directories will be created if they do not exist Default is true
If true and an object exists then an exception will be thrown If false then the object will be deleted if possible If not possible to delete the object or it is a non-empty directory an exception will be thrown Default is true
The access modes that to set on the file Default is Read,Write
Filesystem specific attributes to fromString to the file Ignored unless on Java 7+ JVM
Create the file referenced by this path.
Create the file referenced by this path.
If failIfExists then IOException is thrown if the file already exists. In the next Java 7 only version it will throw FileAlreadyExistsException
An exception is always thrown if the file is a directory and that directory contains children
An Exception will also be thrown if the parent directory does not have write permission
If true then the containing directories will be created if they do not exist Default is true
If true and an object exists then an exception will be thrown If false then the object will be deleted if possible If not possible to delete the object or it is a non-empty directory an exception will be thrown Default is true
The access modes that to set on the file Default is Read,Write
Filesystem specific attributes to fromString to the file Ignored unless on Java 7+ JVM
Deletes the file or throws an IOException on failure
Delete the filesystem object if the file exists.
Delete the filesystem object if the file exists.
If the file exists and is a non-empty Directory or there is some other reason the operation cannot be performed an IOException will be thrown.
If the file does not exist it will return false
if the file is write protected force will override the write protection and delete the file. If not force then an IOException will be thrown indicating failure of deletion. Default is false
Deletes the directory recursively.
Deletes the directory recursively.
This method does not detect circular directory graphs and does not promise to perform the delete in an atomic operation
Use with caution!
if the file is write protected force will override the write protection and delete the file. If not force then an IOException will be thrown indicating failure of deletion. Default is false
If false then method will throw an exception when encountering a file that cannot be deleted. Otherwise it will continue to delete all the files that can be deleted. Note: this method is not transactional, all files visited before failure are deleted.
@return Tuple with (The number of files deleted, The number of files remaining)
An iterable that traverses all the elements in the directory tree down to the specified depth
An iterable that traverses all the elements in the directory tree down to the specified depth
The filter parameter is a function because the PathSet can return files from many directories. The function provides the mechanism for declaring which PathMatcher to use at each level. The two parameters are original path and the path to be visited relative to the original path. By default the function always returns None.
If the depth parameter is non-negative then that restricts the depth that will be traversed. The value 0 will not return any
elements, depth = 1 is essentially the path#directoryStream(Option,Boolean)
method and values < 0 will return all elements
at any depth.
The traversal order is pre-order.
No exceptions will be thrown by this method if it is called and the Path is a File or does not exist. Instead the PathSet
will throw a NotDirectoryException when a method is called and the underlying object is not a Directory.
A filter that restricts what paths are available in the PathSet If the filter is a PathMatcher and the underlying filesystem supports the PatchMatcher implementation then the maximum performance will be achieved. All Paths that are passed to matcher is relative to this Path Default is PathMatcher.All
How deep down the tree to traverse 1 is just visit the objects in the directory negative values will visit entire tree Default is -1
@return A managed resource managing a PathSet.
NOT PUBLIC API: Create a directory for the current path without considering if the parents has been previously created.
NOT PUBLIC API: Create a file for the current path without considering if the parents has been previously created.
NOT PUBLIC API: Create all parent directories of the current Path
True if this path ends with the other path
True if this path ends with the other path
True if this path ends with the other path
True if the path exists in the file system
The extension of the name of the path, if it exists.
The extension of the name of the path, if it exists. if name ends with an extension (e.g. "foo.jpg") returns the extension ("jpg")
the extension of the path
Inserts data at a position in the Seekable.
Inserts data at a position in the Seekable. The actual position in the Seekable where the data is inserted depends on the type of data being written. For example if Longs are being written then position calculated as position * 8
Important: The use of an Array is highly recommended because normally arrays can be more efficiently written using the underlying APIs
The position where the data is inserted into the Seekable. The actual position in the Seekable where the data is inserted depends on the type of data being written. For example if Longs are being written then position calculated as position * 8
The data to write. This can be any type that has a OutputConverter associated with it. There are predefined $outputConverters for several types. See the OutputConverter object for the predefined types and for objects to simplify implementing custom OutputConverter
$converterParam
Inserts a string at a position in the Seekable.
Inserts a string at a position in the Seekable. This is a potentially inefficient because of the need to count characters. If the codec is not a fixed sized codec (for example UTF8) each character must be converted in the file up to the point of insertion.
The position in the file to perform the insert. A position of 2 will insert the character after the second character (not byte).
The string that will be inserted into the Seekable
The codec to use for determining the location for inserting the string and for encoding the string as bytes
Since the OutputConverter object defined for writing Ints encodes Ints using 4 bytes this method is provided to simply write an array of Ints as if they are Bytes.
Since the OutputConverter object defined for writing Ints encodes Ints using 4 bytes this method is provided to simply write an array of Ints as if they are Bytes. In other words just taking the first byte. This is pretty common in Java.io style IO. IE
outputStream.write(1)
1 is written as a single byte.
True is the file is absolute.
True if the path exists and is a directory
True if the path exists and is a file
True if this path has been modified more recently than other.
True if this path has been modified more recently than other. If this file does not exist it is not fresh than other
True if this path has been modified more recently than other.
True if the file is a hidden file for the current filesystem
True if this path and the other path reference the same file.
True if this path and the other path reference the same file.
This means the two paths may have different segments and perhaps even have symlinks in the path but if they reference the same file then this will return true. Use equals to test if the paths are the same
True if this path and the other path reference the same file.
True if the file is a symlink.
True if the file is a symlink.
This method is generally correct but depending the filesystem there is a possibility of getting the the incorrect result since the canonical and absolute paths are compared and no native code is used. Future versions will be guaranteed to work correctly but this version cannot be because of limitations of the VM.
True if the file is a symlink.
The time of the last modification of the file
Set the last time modified of the file
Obtain an non-strict traversable for iterating through the lines in the object
Obtain an non-strict traversable for iterating through the lines in the object
If the codec is not the same as the source codec (the codec of the underlying data) then the characters will converted to the desired codec.
The strategy for determining the end of line Default is to auto-detect the EOL
if true then the line will end with the line terminator Default is false
@return a non-strict traversable for iterating through all the lines
The codec representing the desired encoding of the characters
Create a matcher from this path's filesystem
Create a matcher from this path's filesystem
FileSystem # matcher ( String, String )
Called to move the current directory to another location on the same filesystem
Called to move the current file to another location on the same filesystem
Move the underlying object if it exists to the target location.
Move the underlying object if it exists to the target location.
If copying of the file is required this will happen, as long as atomicMove = false. If atomicMove = true and the move requires copy then deletion an exception will be thrown. This is filesystem dependent
the target path to move the filesystem object to.
it will guarantee atomicity of the move False by default
true the path to the moved object
False if the path does not exist in the file system
False if the path does not exist in the file system
false if the path does not exist in the file system
Execute the function 'f' passing an Seekable instance that performs all operations on a single opened connection to the underlying resource.
Execute the function 'f' passing an Seekable instance that performs all operations on a single opened connection to the underlying resource. Typically each call to one of the Seekable's methods results in a new connection. For example if write it called typically it will write to the start of the seekable but in open it will write to the current position.
Even if the underlying resource is an appending, using open will be more efficient since the connection only needs to be made a single time.
the function to execute on the new Output instance (which uses a single connection)
the result of the function
Execute the function 'f' passing an Output instance that performs all operations on a single opened connection to the underlying resource.
Execute the function 'f' passing an Output instance that performs all operations on a single opened connection to the underlying resource. Typically each call to one of the Output's methods results in a new connection. For example if the underlying OutputStream truncates the file each time the connection is made then calling write two times will result in the contents of the second write overwriting the second write.
Even if the underlying resource is an appending, using open will be more efficient since the connection only needs to be made a single time.
the function to execute on the new Output instance (which uses a single connection)
the result of the function
The path segments of the path excluding the current path segment.
The path segments of the path excluding the current path segment. The first segment is the first segment in the path.
The path segments of the path excluding the current path segment
segments
Update a portion of the file content at the declared location.
Update a portion of the file content at the declared location. This is the most flexible of the random access methods but is also (probably) the trickiest to fully understand. That said it behaves (almost) identical to a scala.collection.Seq.patch method, so if you understand that you should not have difficulty understanding this method.
Important: The use of an Array is highly recommended because normally arrays can be more efficiently written using the underlying APIs
To append data the position must >= size
If the position is within the file but the
position + bytes.length
is beyond the end of the file the file will be enlarged so
that the entire string can fit in the file
The write begins at the position indicated. So if position = 0 then the write will begin at the first byte of the file.
The start position of the update starting at 0. The position must be within the file or == size (for appending)
The data to write. This can be any type that has a OutputConverter associated with it. There are predefined $outputConverters for several types. See the OutputConverter object for the predefined types and for objects to simplify implementing custom OutputConverter
The strategy that dictates how many characters/bytes/units are overwritten $converterParam
Update a portion of the file content at the declared location.
Update a portion of the file content at the declared location. This is the most flexible of the random access methods but is also (probably) the trickiest to fully understand. That said it behaves (almost) identical to a scala.collection.Seq.patch method, so if you understand that you should not have difficulty understanding this method.
If the position is beyond the end of the file a BufferUnderflow Exception will be thrown
If the position is within the file but the
position + string.getBytes(codec).length
is beyond the end of the file the file will be enlarged so
that the entire string can fit in the file
The write begins at the position indicated. So if position = 0 then the write will begin at the first byte of the file.
The start position of the update starting at 0. The position is the position'th character in the file using the codec for decoding the file The position must be within the file.
The string to write to the file starting at position.
The strategy that dictates how many characters/bytes/units are overwritten
The codec to use for decoding the underlying data into characters
Since the OutputConverter object defined for writing Ints encodes Ints using 4 bytes this method is provided to simply write an array of Ints as if they are Bytes.
Since the OutputConverter object defined for writing Ints encodes Ints using 4 bytes this method is provided to simply write an array of Ints as if they are Bytes. In other words just taking the first byte. This is pretty common in Java.io style IO. IE
outputStream.write(1)
1 is written as a single byte.
The path of the file.
Make the current path relative to the other path.
Make the current path relative to the other path. If the two paths are on different drives then the other path is returned. If the two paths have different roots the other path is returned. If the two paths reference the same path then the other path is returned
relative path from the current path to the other path
Constructs a path from other using the same file system as this
path and resolves the this and other in the same manner as
Path#resolve(Path)
Constructs a path from other using the same file system as this
path and resolves the this and other in the same manner as
Path#resolve(Path)
Resolve this path with other.
Resolve this path with other. In the simplest case that means appending other to this.
Does the same thing as the / method
another path to append to this path @return the constructed/resolved path
The root of the file system of the path if it can be determined.
The root of the file system of the path if it can be determined.
the root of the file system
The segments in the path including the current element of the path.
The segments in the path including the current element of the path. If the the path is relative only the segments defined are returned... NOT the absolute path
Note segments.last should == name
the segments in the path
The path segment separator string for the filesystem
The path segment separator string for the filesystem
FileSystem#separator
The name of the file excluding of the file
The name of the file excluding of the file
name of the file excluding of the file
The size of the file/directory in bytes
Loads all the characters into memory.
Loads all the characters into memory. There is no protection against loading very large files/amounts of data.
The codec representing the desired encoding of the characters
True if this path starts with the other path
True if this path starts with the other path
True if this path starts with the other path
Create a temporary file to use for performing certain operations.
Creates a URL from the path.
Creates a URL from the path. This does have the bug present in java.file.File#toURL
and can be used directly.
java.file.File#toURI
Truncate/Chop the Seekable to the number of bytes declared by the position param
Truncate/Chop the Seekable to the number of bytes declared by the position param
Writes a string.
Writes a string.
the data to write
the codec of the string to be written. The string will
be converted to the encoding of sourceCodec
Default is sourceCodec
Write data to the underlying object.
Write data to the underlying object. Each time write is called the resource is reopened, in the case of a file this means that the file will be opened and truncated. The
In the case of writing ints and bytes it is often recommended to write arrays of data since normally the underlying object can write arrays of bytes or integers most efficiently.
Since Characters require a codec to write to an OutputStream characters cannot be written with this method unless a OutputWriterFunction.CharFunction object is provided as the writer.
The data to write to underlying object. Any data that has a resolvable OutputConverter can be written. See the OutputConverter object for the defined OutputConverter implementations and classes to assist implementing more.
The strategy used to write the data to the underlying object. Many standard data-types are implicitly resolved and do not need to be supplied
#writeChars for more on writing characters
Since the OutputConverter object defined for writing Ints encodes Ints using 4 bytes this method is provided to simply write an array of Ints as if they are Bytes.
Since the OutputConverter object defined for writing Ints encodes Ints using 4 bytes this method is provided to simply write an array of Ints as if they are Bytes. In other words just taking the first byte. This is pretty common in Java.io style IO. IE
outputStream.write(1)
1 is written as a single byte.
Write several strings.
Write several strings.
The data to write
A string to add between each string. It is not added to the before the first string or after the last.
The codec of the strings to be written. The strings will
be converted to the encoding of sourceCodec