trait Files[F[_]] extends AnyRef
Provides operations related to working with files in the effect F.
An instance is available for any effect F which has an Async[F] instance.
- Source
- Files.scala
- Alphabetic
- By Inheritance
- Files
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
def
copy(source: Path, target: Path, flags: Seq[CopyOption] = Seq.empty): F[Path]
Copies a file from the source to the target path,
Copies a file from the source to the target path,
By default, the copy fails if the target file already exists or is a symbolic link.
-
abstract
def
createDirectories(path: Path, flags: Seq[FileAttribute[_]] = Seq.empty): F[Path]
Creates a new directory at the given path and creates all nonexistent parent directories beforehand.
-
abstract
def
createDirectory(path: Path, flags: Seq[FileAttribute[_]] = Seq.empty): F[Path]
Creates a new directory at the given path.
-
abstract
def
delete(path: Path): F[Unit]
Deletes a file.
Deletes a file.
If the file is a directory then the directory must be empty for this action to succeed. This action will fail if the path doesn't exist.
-
abstract
def
deleteDirectoryRecursively(path: Path, options: Set[FileVisitOption] = Set.empty): F[Unit]
Recursively delete a directory
-
abstract
def
deleteIfExists(path: Path): F[Boolean]
Like
delete, but will not fail when the path doesn't exist. -
abstract
def
directoryStream(path: Path, glob: String): Stream[F, Path]
Creates a stream of Paths inside a directory which match the given glob.
-
abstract
def
directoryStream(path: Path, filter: (Path) ⇒ Boolean): Stream[F, Path]
Creates a stream of Paths inside a directory, filtering the results by the given predicate.
-
abstract
def
directoryStream(path: Path): Stream[F, Path]
Creates a stream of Paths inside a directory.
-
abstract
def
exists(path: Path, flags: Seq[LinkOption] = Seq.empty): F[Boolean]
Checks if a file exists.
Checks if a file exists.
Note that the result of this method is immediately outdated. If this method indicates the file exists then there is no guarantee that a subsequence access will succeed. Care should be taken when using this method in security sensitive applications.
-
abstract
def
isDirectory(path: Path, linkOption: Seq[LinkOption] = Nil): F[Boolean]
Tests whether a file is a directory.
Tests whether a file is a directory.
The options sequence may be used to indicate how symbolic links are handled for the case that the file is a symbolic link. By default, symbolic links are followed and the file attribute of the final target of the link is read. If the option NOFOLLOW_LINKS is present then symbolic links are not followed.
Where is it required to distinguish an I/O exception from the case that the file is not a directory then the file attributes can be read with the readAttributes method and the file type tested with the BasicFileAttributes.isDirectory() method.
- path
the path to the file to test
- returns
true if the file is a directory; false if the file does not exist, is not a directory, or it cannot be determined if the file is a directory or not.
-
abstract
def
isFile(path: Path, linkOption: Seq[LinkOption] = Nil): F[Boolean]
Tests whether a file is a regular file with opaque content.
Tests whether a file is a regular file with opaque content.
The options sequence may be used to indicate how symbolic links are handled for the case that the file is a symbolic link. By default, symbolic links are followed and the file attribute of the final target of the link is read. If the option NOFOLLOW_LINKS is present then symbolic links are not followed.
Where is it required to distinguish an I/O exception from the case that the file is not a regular file then the file attributes can be read with the readAttributes method and the file type tested with the BasicFileAttributes.isRegularFile() method.
- path
the path to the file
- returns
true if the file is a regular file; false if the file does not exist, is not a regular file, or it cannot be determined if the file is a regular file or not.
-
abstract
def
move(source: Path, target: Path, flags: Seq[CopyOption] = Seq.empty): F[Path]
Moves (or renames) a file from the source to the target path.
Moves (or renames) a file from the source to the target path.
By default, the move fails if the target file already exists or is a symbolic link.
-
abstract
def
open(path: Path, flags: Seq[OpenOption]): Resource[F, FileHandle[F]]
Creates a
FileHandlefor the file at the suppliedPath. -
abstract
def
openFileChannel(channel: F[FileChannel]): Resource[F, FileHandle[F]]
Creates a
FileHandlefor the suppliedFileChannel. -
abstract
def
permissions(path: Path, flags: Seq[LinkOption] = Seq.empty): F[Set[PosixFilePermission]]
Get file permissions as set of PosixFilePermission.
Get file permissions as set of PosixFilePermission.
Note: this will only work for POSIX supporting file systems.
-
abstract
def
readAll(path: Path, chunkSize: Int): Stream[F, Byte]
Reads all data from the file at the specified
java.nio.file.Path. -
abstract
def
readCursor(path: Path, flags: Seq[OpenOption] = Nil): Resource[F, ReadCursor[F]]
Returns a
ReadCursorfor the specified path.Returns a
ReadCursorfor the specified path. TheREADoption is added to the supplied flags. -
abstract
def
readRange(path: Path, chunkSize: Int, start: Long, end: Long): Stream[F, Byte]
Reads a range of data synchronously from the file at the specified
java.nio.file.Path.Reads a range of data synchronously from the file at the specified
java.nio.file.Path.startis inclusive,endis exclusive, so whenstartis 0 andendis 2, two bytes are read. -
abstract
def
setPermissions(path: Path, permissions: Set[PosixFilePermission]): F[Path]
Set file permissions from set of PosixFilePermission.
Set file permissions from set of PosixFilePermission.
Note: this will only work for POSIX supporting file systems.
-
abstract
def
size(path: Path): F[Long]
Returns the size of a file (in bytes).
-
abstract
def
tail(path: Path, chunkSize: Int, offset: Long = 0L, pollDelay: FiniteDuration = 1.second): Stream[F, Byte]
Returns an infinite stream of data from the file at the specified path.
Returns an infinite stream of data from the file at the specified path. Starts reading from the specified offset and upon reaching the end of the file, polls every
pollDurationfor additional updates to the file.Read operations are limited to emitting chunks of the specified chunk size but smaller chunks may occur.
If an error occurs while reading from the file, the overall stream fails.
-
abstract
def
tempDirectory(dir: Option[Path] = None, prefix: String = "", attributes: Seq[FileAttribute[_]] = Seq.empty): Resource[F, Path]
Creates a Resource which can be used to create a temporary directory.
Creates a Resource which can be used to create a temporary directory. The directory is created during resource allocation, and removed during its release.
- dir
the directory which the temporary directory will be created in. Pass in None to use the default system temp directory
- prefix
the prefix string to be used in generating the directory's name
- attributes
an optional list of file attributes to set atomically when creating the directory
- returns
a resource containing the path of the temporary directory
-
abstract
def
tempFile(dir: Option[Path] = None, prefix: String = "", suffix: String = ".tmp", attributes: Seq[FileAttribute[_]] = Seq.empty): Resource[F, Path]
Creates a Resource which can be used to create a temporary file.
Creates a Resource which can be used to create a temporary file. The file is created during resource allocation, and removed during its release.
- dir
the directory which the temporary file will be created in. Pass in None to use the default system temp directory
- prefix
the prefix string to be used in generating the file's name
- suffix
the suffix string to be used in generating the file's name
- attributes
an optional list of file attributes to set atomically when creating the file
- returns
a resource containing the path of the temporary file
-
abstract
def
walk(start: Path, maxDepth: Int, options: Seq[FileVisitOption] = Seq.empty): Stream[F, Path]
Creates a stream of Paths contained in a given file tree down to a given depth.
-
abstract
def
walk(start: Path, options: Seq[FileVisitOption]): Stream[F, Path]
Creates a stream of Paths contained in a given file tree, respecting the supplied options.
Creates a stream of Paths contained in a given file tree, respecting the supplied options. Depth is unlimited.
-
abstract
def
walk(start: Path): Stream[F, Path]
Creates a stream of Paths contained in a given file tree.
Creates a stream of Paths contained in a given file tree. Depth is unlimited.
-
abstract
def
watch(path: Path, types: Seq[EventType] = Nil, modifiers: Seq[Modifier] = Nil, pollTimeout: FiniteDuration = 1.second): Stream[F, Event]
Watches a single path.
Watches a single path.
Alias for creating a watcher and watching the supplied path, releasing the watcher when the resulting stream is finalized.
-
abstract
def
watcher: Resource[F, Watcher[F]]
Creates a Watcher for the default file system.
Creates a Watcher for the default file system.
The watcher is returned as a resource. To use the watcher, lift the resource to a stream, watch or register 1 or more paths, and then return
watcher.events(). -
abstract
def
writeAll(path: Path, flags: Seq[StandardOpenOption] = List(StandardOpenOption.CREATE)): Pipe[F, Byte, INothing]
Writes all data to the file at the specified
java.nio.file.Path.Writes all data to the file at the specified
java.nio.file.Path.Adds the WRITE flag to any other
OpenOptionflags specified. By default, also adds the CREATE flag. -
abstract
def
writeCursor(path: Path, flags: Seq[OpenOption] = List(StandardOpenOption.CREATE)): Resource[F, WriteCursor[F]]
Returns a
WriteCursorfor the specified path.Returns a
WriteCursorfor the specified path.The
WRITEoption is added to the supplied flags. If theAPPENDoption is present inflags, the offset is initialized to the current size of the file. -
abstract
def
writeCursorFromFileHandle(file: FileHandle[F], append: Boolean): F[WriteCursor[F]]
Returns a
WriteCursorfor the specified file handle.Returns a
WriteCursorfor the specified file handle.If
appendis true, the offset is initialized to the current size of the file. -
abstract
def
writeRotate(computePath: F[Path], limit: Long, flags: Seq[StandardOpenOption] = List(StandardOpenOption.CREATE)): Pipe[F, Byte, INothing]
Writes all data to a sequence of files, each limited in size to
limit.Writes all data to a sequence of files, each limited in size to
limit.The
computePathoperation is used to compute the path of the first file and every subsequent file. Typically, the next file should be determined by analyzing the current state of the filesystem -- e.g., by looking at all files in a directory and generating a unique name.
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @HotSpotIntrinsicCandidate()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
Deprecated Value Members
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated
- Deprecated