object IO
A collection of File, URL, and I/O utility methods.
- Alphabetic
- By Inheritance
- IO
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
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
-
val
Newline: String
The newline string for this system, as obtained by the line.separator system property.
-
def
append(file: File, bytes: Array[Byte]): Unit
Appends
bytes
to the existing contents offile
.Appends
bytes
to the existing contents offile
. Iffile
does not exist, it is created, as are any parent directories. -
def
append(file: File, content: String, charset: Charset = defaultCharset): Unit
Appends
content
to the existing contents offile
usingcharset
or UTF-8 ifcharset
is not explicitly specified.Appends
content
to the existing contents offile
usingcharset
or UTF-8 ifcharset
is not explicitly specified. Iffile
does not exist, it is created, as are any parent directories. -
def
asFile(url: URL): File
Converts the given URL to a File.
Converts the given URL to a File. If the URL is for an entry in a jar, the File for the jar is returned.
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
- def assertAbsolute(uri: URI): Unit
- def assertAbsolute(f: File): Unit
- def assertDirectories(file: File*): Unit
- def assertDirectory(file: File): Unit
-
def
chgrp(group: String, file: File): Unit
An alias for setGroup.
An alias for setGroup. Updates the group owner of the file. This operation requires underlying filesystem to support
IO.hasFileOwnerAttributeView
. -
def
chmod(permissions: String, file: File): Unit
An alias for
setPermissions
.An alias for
setPermissions
. Updates permission of this file. This operation requires underlying filesystem to supportIO.isPosix
.- permissions
Must be 9 character POSIX permission representation e.g. "rwxr-x---"
-
def
chown(owner: String, file: File): Unit
An alias for
setOwner
.An alias for
setOwner
. Updates the file owner. This operation requires underlying filesystem to supportIO.hasFileOwnerAttributeView
. -
def
classLocation[A](implicit mf: Manifest[A]): URL
Returns the URL to the directory, Java module, or the JAR file containing the class file
cl
.Returns the URL to the directory, Java module, or the JAR file containing the class file
cl
. If the location cannot be determined or it is not a file, an error is generated. Note that for JDK 11 onwards, a module will return a jrt path. -
def
classLocation(cl: Class[_]): URL
Returns the URL to the directory, Java module, or the JAR file containing the class file
cl
.Returns the URL to the directory, Java module, or the JAR file containing the class file
cl
. If the location cannot be determined or it is not a file, an error is generated. Note that for JDK 11 onwards, a module will return a jrt URL such asjrt:/java.base
. -
def
classLocationFileOption[A](implicit mf: Manifest[A]): Option[File]
Returns the directory, Java module, or the JAR containing the class file for type
T
(as determined by an implicit Manifest).Returns the directory, Java module, or the JAR containing the class file for type
T
(as determined by an implicit Manifest). If the location cannot be determined or it is not a file, an error is generated. Note that for JDK 11 onwards, the returned module path cannot be expressed asFile
, so it will returnNone
. -
def
classLocationFileOption(cl: Class[_]): Option[File]
Returns the directory, Java module, or the JAR containing the class file
cl
.Returns the directory, Java module, or the JAR containing the class file
cl
. If the location cannot be determined or it is not a file, an error is generated. Note that for JDK 11 onwards, the returned module path cannot be expressed asFile
, so it will returnNone
. -
def
classLocationPath[A](implicit mf: Manifest[A]): java.nio.file.Path
Returns a NIO Path to the directory, Java module, or the JAR file for type
A
(as determined by an implicit Manifest).Returns a NIO Path to the directory, Java module, or the JAR file for type
A
(as determined by an implicit Manifest). If the location cannot be determined, an error is generated. Note that for JDK 11 onwards, a module will return a jrt path. -
def
classLocationPath(cl: Class[_]): java.nio.file.Path
Returns the NIO Path to the directory, Java module, or the JAR file containing the class file
cl
.Returns the NIO Path to the directory, Java module, or the JAR file containing the class file
cl
. If the location cannot be determined, an error is generated. Note that for JDK 11 onwards, a module will return a jrt path. -
def
classfileLocation(cl: Class[_]): URL
Returns a URL for the classfile containing the given class If the location cannot be determined, an error is generated.
-
def
classfileLocation[T](implicit mf: Manifest[T]): URL
Returns a URL for the classfile containing the given class file for type
T
(as determined by an implicit Manifest).Returns a URL for the classfile containing the given class file for type
T
(as determined by an implicit Manifest). If the location cannot be determined, an error is generated. -
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
- def copy(sources: Traversable[(File, File)], overwrite: Boolean, preserveLastModified: Boolean, preserveExecutable: Boolean): Set[File]
-
def
copy(sources: Traversable[(File, File)], options: CopyOptions): Set[File]
For each pair in
sources
, copies the contents of the first File (the source) to the location of the second File (the target).For each pair in
sources
, copies the contents of the first File (the source) to the location of the second File (the target).See sbt.io.CopyOptions for docs on the options available.
Any parent directories that do not exist are created. The set of all target files is returned, whether or not they were updated by this method.
- def copy(sources: Traversable[(File, File)]): Set[File]
- def copyDirectory(source: File, target: File, overwrite: Boolean = false, preserveLastModified: Boolean = false, preserveExecutable: Boolean = true): Unit
-
def
copyDirectory(source: File, target: File, options: CopyOptions): Unit
Copies the contents of each file in the
source
directory to the corresponding file in thetarget
directory.Copies the contents of each file in the
source
directory to the corresponding file in thetarget
directory.See sbt.io.CopyOptions for docs on the options available.
Files in
target
without a corresponding file insource
are left unmodified in any case. Any parent directories that do not exist are created. - def copyDirectory(source: File, target: File): Unit
-
def
copyExecutable(sourceFile: File, targetFile: File): AnyVal
Transfers the executable property of
sourceFile
totargetFile
. - def copyFile(sourceFile: File, targetFile: File, preserveLastModified: Boolean = false, preserveExecutable: Boolean = true): Unit
-
def
copyFile(sourceFile: File, targetFile: File, options: CopyOptions): Unit
Copies the contents of
sourceFile
to the location oftargetFile
, overwriting any existing content.Copies the contents of
sourceFile
to the location oftargetFile
, overwriting any existing content.See sbt.io.CopyOptions for docs on the options available.
- def copyFile(sourceFile: File, targetFile: File): Unit
-
def
copyLastModified(sourceFile: File, targetFile: File): Boolean
Transfers the last modified time of
sourceFile
totargetFile
.Transfers the last modified time of
sourceFile
totargetFile
.Note: this method has a special semantics if files are missing. In particular, if the source file is missing, it will silently set the target modification time to 1st January 1970, which corresponds to the Unix epoch.
The method returns true if the target file modification time was successfully changed, false otherwise.
The deprecated related method copyModifiedTime() has a somewhat different semantics, please refer to its documentation for additional details.
- See also
copyModifiedTime
-
def
createDirectories(dirs: Traversable[File]): Unit
Creates directories
dirs
and all parent directories.Creates directories
dirs
and all parent directories. It tries to work around a race condition inFile.mkdirs()
by retrying up to a limit. -
def
createDirectory(dir: File): Unit
Creates directory
dir
and all parent directories.Creates directory
dir
and all parent directories. It tries to work around a race condition inFile.mkdirs()
by retrying up to a limit. -
def
createTemporaryDirectory: File
Creates a directory in the default temporary directory with a name generated from a random integer.
-
def
createUniqueDirectory(baseDirectory: File): File
Creates a directory in
baseDirectory
with a name generated from a random integer -
def
defaultCharset: Charset
The default Charset used when not specified: UTF-8.
-
def
delete(file: File): Unit
Deletes
file
, recursively if it is a directory.Deletes
file
, recursively if it is a directory. Note that this method may silently fail to delete the file (or directory) if any errors occur. -
def
delete(files: Iterable[File]): Unit
Deletes each file or directory (recursively) in
files
. -
def
deleteFilesEmptyDirs(files: Iterable[File]): Unit
Deletes each file or directory in
files
recursively.Deletes each file or directory in
files
recursively. Any empty parent directories are deleted, recursively. -
def
deleteIfEmpty(dirs: Set[File]): Unit
Deletes all empty directories in the set.
Deletes all empty directories in the set. Any non-empty directories are ignored.
-
def
directoryURI(uri: URI): URI
Converts an absolute File to a URI.
Converts an absolute File to a URI. The File is converted to a URI (toURI), normalized (normalize), encoded (toASCIIString), and a forward slash ('/') is appended to the path component if it does not already end with a slash.
-
def
directoryURI(dir: File): URI
Converts an absolute File to a URI.
Converts an absolute File to a URI. The File is converted to a URI (toURI), normalized (normalize), encoded (toASCIIString), and a forward slash ('/') is appended to the path component if it does not already end with a slash.
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
foldLines[T](in: BufferedReader, init: T)(f: (T, String) ⇒ T): T
Applies
f
to each line read fromin
and the accumulated value of typeT
, with initial valueinit
.Applies
f
to each line read fromin
and the accumulated value of typeT
, with initial valueinit
. This method does not closein
. -
def
foreachLine(in: BufferedReader)(f: (String) ⇒ Unit): Unit
Applies
f
to each line read fromin
.Applies
f
to each line read fromin
. This method does not closein
. -
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
getModifiedTimeOrZero(file: File): Long
Return the last modification timestamp of the specified file, in milliseconds since the Unix epoch (January 1, 1970 UTC).
Return the last modification timestamp of the specified file, in milliseconds since the Unix epoch (January 1, 1970 UTC).
If the specified file does not exist, this method will return 0L.
The deprecated method getModifiedTime() has similar semantics, but will throw an exception if the file does not exist. Please refer to its documentation for additional details.
- See also
getModifiedTime
-
def
gunzip(input: InputStream, output: OutputStream): Unit
Gunzips the InputStream 'input' and writes it to 'output'.
Gunzips the InputStream 'input' and writes it to 'output'. Neither stream is closed.
-
def
gunzip(in: File, out: File): Unit
Gunzips the file 'in' and writes it to 'out'.
Gunzips the file 'in' and writes it to 'out'. 'in' cannot be the same file as 'out'.
-
def
gzip(input: InputStream, output: OutputStream): Unit
Gzips the InputStream 'in' and writes it to 'output'.
Gzips the InputStream 'in' and writes it to 'output'. Neither stream is closed.
-
def
gzip(in: File, out: File): Unit
Gzips the file 'in' and writes it to 'out'.
Gzips the file 'in' and writes it to 'out'. 'in' cannot be the same file as 'out'.
-
def
gzipFileIn[T](file: File)(f: (InputStream) ⇒ T): T
Applies
f
to a buffered gzipInputStream
forfile
.Applies
f
to a buffered gzipInputStream
forfile
. The streams involved are opened before callingf
and closed after it returns. The result is the result off
. -
def
gzipFileOut[T](file: File)(f: (OutputStream) ⇒ T): T
Applies
f
to a buffered gzipOutputStream
forfile
.Applies
f
to a buffered gzipOutputStream
forfile
. The streams involved are opened before callingf
and closed after it returns. The result is the result off
. -
lazy val
hasAclFileAttributeView: Boolean
Returns
true
if the filesystem supports ACL file attribute view. -
lazy val
hasBasicFileAttributeView: Boolean
Returns
true
if the filesystem supports basic file attribute view. -
lazy val
hasDosFileAttributeView: Boolean
Returns
true
if the filesystem supports DOS file attribute view. -
lazy val
hasFileOwnerAttributeView: Boolean
Returns
true
if the filesystem supports file owner attribute view. -
lazy val
hasPosixFileAttributeView: Boolean
Returns
true
if the filesystem supports POSIX file attribute view. -
lazy val
hasUserDefinedFileAttributeView: Boolean
Returns
true
if the filesystem supports user-defined file attribute view. -
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isPosix: Boolean
Returns
true
if the filesystem supports POSIX file attribute view. -
def
jar(sources: Traversable[(File, String)], outputJar: File, manifest: Manifest, time: Option[Long]): Unit
Creates a jar file.
Creates a jar file.
- sources
The files to include in the jar file paired with the entry name in the jar. Only the pairs explicitly listed are included.
- outputJar
The file to write the jar to.
- manifest
The manifest for the jar.
- time
static timestamp to use for all entries, if any, in milliseconds since Epoch
-
def
listFiles(dir: File): Array[File]
Returns the children of directory
dir
in a non-null array. -
def
listFiles(dir: File, filter: java.io.FileFilter): Array[File]
Returns the children of directory
dir
that matchfilter
in a non-null array. -
def
listFiles(filter: java.io.FileFilter)(dir: File): Array[File]
Returns the children of directory
dir
that matchfilter
in a non-null array. -
def
load(properties: Properties, from: File): Unit
Reads the properties in
from
intoproperties
.Reads the properties in
from
intoproperties
. Iffrom
does not exist,properties
is left unchanged. -
def
move(a: File, b: File): Unit
Moves the contents of
a
to the location specified byb
.Moves the contents of
a
to the location specified byb
. This method deletes any content already atb
and creates any parent directories ofb
if they do not exist. It will first tryFile.renameTo
and if that fails, resort to copying and then deleting the original file. In either case, the original File will not exist on successful completion of this method. -
def
move(files: Traversable[(File, File)]): Unit
For each pair in
files
, moves the contents of the first File to the location of the second.For each pair in
files
, moves the contents of the first File to the location of the second. Seesbt.io.IO$.move(java.io.File,java.io.File):Unit
for the behavior of the individual move operations. -
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
objectInputStream(wrapped: InputStream, loader: ClassLoader): ObjectInputStream
Constructs an
ObjectInputStream
onwrapped
that usesloader
to load classes.Constructs an
ObjectInputStream
onwrapped
that usesloader
to load classes. See also issue 136. -
def
parseClasspath(s: String): Seq[File]
Parses a classpath String into File entries according to the current platform's path separator.
-
def
pathSplit(s: String): Array[String]
Splits a String around the platform's path separator characters.
-
def
read(file: File, charset: Charset = defaultCharset): String
Reads the full contents of
file
into a String usingcharset
or UTF-8 ifcharset
is not explicitly specified. -
def
readBytes(in: InputStream): Array[Byte]
Reads the full contents of
in
into a byte array.Reads the full contents of
in
into a byte array. This method does not closein
. -
def
readBytes(file: File): Array[Byte]
Reads the full contents of
in
into a byte array. -
def
readLines(in: BufferedReader): List[String]
Reads all of the lines from
in
.Reads all of the lines from
in
. This method does not closein
. -
def
readLines(file: File, charset: Charset = defaultCharset): List[String]
Reads all of the lines in
file
using the providedcharset
or UTF-8 ifcharset
is not explicitly specified. -
def
readLinesURL(url: URL, charset: Charset = defaultCharset): List[String]
Reads all of the lines from
url
using the providedcharset
or UTF-8 ifcharset
is not explicitly specified. -
def
readStream(in: InputStream, charset: Charset = defaultCharset): String
Reads the full contents of
in
into a byte array.Reads the full contents of
in
into a byte array. This method does not closein
. - def reader[T](file: File, charset: Charset = defaultCharset)(f: (BufferedReader) ⇒ T): T
-
def
relativize(base: File, file: File): Option[String]
Returns the path for
file
relative to directorybase
or None ifbase
is not a parent offile
.Returns the path for
file
relative to directorybase
or None ifbase
is not a parent offile
. Iffile
orbase
are not absolute, they are first resolved against the current working directory. -
def
relativizeFile(base: File, file: File): Option[File]
Returns the relative file for
file
relative to directorybase
or None ifbase
is not a parent offile
.Returns the relative file for
file
relative to directorybase
or None ifbase
is not a parent offile
. Iffile
orbase
are not absolute, they are first resolved against the current working directory. -
def
resolve(base: File, f: File): File
Resolves
f
againstbase
, which must be an absolute directory.Resolves
f
againstbase
, which must be an absolute directory. The result is guaranteed to be absolute. Iff
is absolute, it is returned without changes. -
def
setGroup(file: File, group: String): Unit
Updates the group owner of the file.
Updates the group owner of the file. This operation requires underlying filesystem to support
IO.hasFileOwnerAttributeView
. -
def
setModifiedTimeOrFalse(file: File, mtime: Long): Boolean
Sets the modification time of the file argument, in milliseconds since the Unix epoch (January 1, 1970 UTC).
Sets the modification time of the file argument, in milliseconds since the Unix epoch (January 1, 1970 UTC).
If the specified file does not exist, this method will return false. It will return true if the file modification time was successfully changed.
The deprecated method setModifiedTime() has similar semantics, but will throw an exception if the file does not exist. Please refer to its documentation for additional details.
This method may not work correctly if mtime is negative.
- See also
setModifiedTime
-
def
setOwner(file: File, owner: String): Unit
Updates the file owner.
Updates the file owner. This operation requires underlying filesystem to support
IO.hasFileOwnerAttributeView
. -
def
setPermissions(file: File, permissions: String): Unit
Updates permission of this file.
Updates permission of this file. This operation requires underlying filesystem to support
IO.isPosix
.- permissions
Must be 9 character POSIX permission representation e.g. "rwxr-x---"
-
def
split(name: String): (String, String)
Splits the given string into base and extension strings.
Splits the given string into base and extension strings. If
name
contains no period, the base string is the input string and the extension is the empty string. Otherwise, the base is the substring up until the last period (exclusive) and the extension is the substring after the last period.For example,
split("Build.scala") == ("Build", "scala")
-
def
stash[T](files: Set[File])(f: ⇒ T): T
Move the provided files to a temporary location.
Move the provided files to a temporary location. If 'f' returns normally, delete the files. If 'f' throws an Exception, return the files to their original location.
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
- val temporaryDirectory: File
- def toFile(uri: URI): File
-
def
toFile(url: URL): File
Constructs a File corresponding to
url
, which must have a scheme offile
.Constructs a File corresponding to
url
, which must have a scheme offile
. This method properly works around an issue with a simple conversion to URI and then to a File.On Windows this can accept the following patterns of URLs:
val u0 = new URL("file:C:\\Users\\foo/.sbt/preloaded")
,val u1 = new URL("file:/C:\\Users\\foo/.sbt/preloaded")
,val u2 = new URL("file://unc/Users/foo/.sbt/preloaded")
,val u3 = new URL("file:///C:\\Users\\foo/.sbt/preloaded")
, andval u4 = new URL("file:////unc/Users/foo/.sbt/preloaded")
. -
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
toURI(f: File): URI
Converts the given File to a URI.
Converts the given File to a URI. If the File is relative, the URI is relative, unlike File.toURI
-
def
touch(file: File, setModified: Boolean = true): Unit
Creates a file at the given location if it doesn't exist.
Creates a file at the given location if it doesn't exist. If the file already exists and
setModified
is true, this method sets the last modified time to the current time. -
def
touch(files: Traversable[File]): Unit
Each input file in
files
is created if it doesn't exist.Each input file in
files
is created if it doesn't exist. If a file already exists, the last modified time is set to the current time. It is not guaranteed that all files will have the same last modified time after this call. -
def
transfer(in: InputStream, out: OutputStream): Unit
Copies all bytes from the given input stream to the given output stream.
Copies all bytes from the given input stream to the given output stream. Neither stream is closed.
-
def
transfer(in: InputStream, to: File): Unit
Copies all bytes from the given input stream to the given File.
Copies all bytes from the given input stream to the given File. The input stream is not closed by this method.
-
def
transfer(in: File, out: OutputStream): Unit
Copies the contents of the input file
in
to theout
stream.Copies the contents of the input file
in
to theout
stream. The output stream is not closed by this method. -
def
transfer(in: File, out: File): Unit
Copies the contents of
in
toout
. -
def
transferAndClose(in: InputStream, out: OutputStream): Unit
Copies all bytes from the given input stream to the given output stream.
Copies all bytes from the given input stream to the given output stream. The input stream is closed after the method completes.
- def unzip(from: File, toDirectory: File, filter: NameFilter = AllPassFilter, preserveLastModified: Boolean = true): Set[File]
- def unzipStream(from: InputStream, toDirectory: File, filter: NameFilter = AllPassFilter, preserveLastModified: Boolean = true): Set[File]
- def unzipURL(from: URL, toDirectory: File, filter: NameFilter = AllPassFilter, preserveLastModified: Boolean = true): Set[File]
- def urlAsFile(url: URL): Option[File]
- val utf8: Charset
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
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()
-
def
withTemporaryDirectory[T](action: (File) ⇒ T): T
Overload of
withTemporaryDirectory
withkeepDirectory
set to false. -
def
withTemporaryDirectory[T](action: (File) ⇒ T, keepDirectory: Boolean): T
Creates a temporary directory and provides its location to the given function.
Creates a temporary directory and provides its location to the given function. The directory is deleted after the function returns if
keepDirectory
is set to false. -
def
withTemporaryFile[T](prefix: String, postfix: String)(action: (File) ⇒ T): T
Overload of
withTemporaryFile
withkeepFile
set to false. -
def
withTemporaryFile[T](prefix: String, postfix: String, keepFile: Boolean)(action: (File) ⇒ T): T
Creates a file in the default temporary directory, calls
action
with the file, deletes the file ifkeepFile
is set to true, and returns the result of callingaction
.Creates a file in the default temporary directory, calls
action
with the file, deletes the file ifkeepFile
is set to true, and returns the result of callingaction
. The name of the file will begin withprefix
, which must be at least three characters long, and end withpostfix
, which has no minimum length. -
def
write(properties: Properties, label: String, to: File): Unit
Writes
properties
to the Fileto
, usinglabel
as the comment on the first line.Writes
properties
to the Fileto
, usinglabel
as the comment on the first line. If any parent directories ofto
do not exist, they are first created. -
def
write(file: File, bytes: Array[Byte]): Unit
Writes
bytes
tofile
, overwriting any existing content.Writes
bytes
tofile
, overwriting any existing content. If any parent directories do not exist, they are first created. -
def
write(file: File, content: String, charset: Charset = defaultCharset, append: Boolean = false): Unit
Writes
content
tofile
usingcharset
or UTF-8 ifcharset
is not explicitly specified.Writes
content
tofile
usingcharset
or UTF-8 ifcharset
is not explicitly specified. Ifappend
isfalse
, the existing contents offile
are overwritten. Ifappend
istrue
, the newcontent
is appended to the existing contents. Iffile
or any parent directories do not exist, they are created. -
def
writeLines(writer: PrintWriter, lines: Seq[String]): Unit
Writes
lines
towriter
usingwriter
'sprintln
method. -
def
writeLines(file: File, lines: Seq[String], charset: Charset = defaultCharset, append: Boolean = false): Unit
Writes
lines
tofile
using the givencharset
or UTF-8 ifcharset
is not explicitly specified.Writes
lines
tofile
using the givencharset
or UTF-8 ifcharset
is not explicitly specified. Ifappend
isfalse
, the contents of the file are overwritten. Ifappend
istrue
, the lines are appended to the file. A newline is written after each line and NOT before the first line. If any parent directories offile
do not exist, they are first created. - def writer[T](file: File, content: String, charset: Charset, append: Boolean = false)(f: (BufferedWriter) ⇒ T): T
-
def
zip(sources: Traversable[(File, String)], outputZip: File, time: Option[Long]): Unit
Creates a zip file.
Creates a zip file.
- sources
The files to include in the zip file paired with the entry name in the zip. Only the pairs explicitly listed are included.
- outputZip
The file to write the zip to.
- time
static timestamp to use for all entries, if any.
Deprecated Value Members
-
def
classLocationFile[T](implicit mf: Manifest[T]): File
Returns the directory, Java module, or the JAR file containing the class file for type
T
(as determined by an implicit Manifest).Returns the directory, Java module, or the JAR file containing the class file for type
T
(as determined by an implicit Manifest). If the location cannot be determined, an error is generated. Note that for JDK 11 onwards, the returned module path cannot be expressed asFile
.- Annotations
- @deprecated
- Deprecated
(Since version 1.3.0) classLocationFile may not work on JDK 11. Use classfileLocation, classLocationFileOption, or classLocationPath instead.
-
def
classLocationFile(cl: Class[_]): File
Returns the directory, Java module, or the JAR file containing the class file
cl
.Returns the directory, Java module, or the JAR file containing the class file
cl
. If the location cannot be determined or it is not a file, an error is generated. Note that for JDK 11 onwards, the returned module path cannot be expressed asFile
.- Annotations
- @deprecated
- Deprecated
(Since version 1.3.0) classLocationFile may not work on JDK 11. Use classfileLocation, classLocationFileOption, or classLocationPath instead.
-
def
copyModifiedTime(fromFile: File, toFile: File): Unit
Copies the last modification time of
fromFile
totoFile
, with a highest precision possible, by using native code when available.Copies the last modification time of
fromFile
totoFile
, with a highest precision possible, by using native code when available.This method copies the timestamps with the highest possible precision offered by the native calls of this system for the filesystem in use. That could be in the region of nanoseconds. It is therefore more precise than using separate getModifiedTime()/setModifiedTime() calls, which will round timestamps to whole milliseconds.
If the timestamp cannot be copied, this method will throw a FileNotFoundException or an IOException, as appropriate.
This method was added in sbt/io v1.1.2, but it may be replaced in the future by a similar method that returns a Try, rather than throwing an exception. It is therefore marked as deprecated, since we cannot guarantee that it will remain available in future versions.
- Annotations
- @deprecated
- Deprecated
(Since version 1.1.3) This method might be removed in the future, also see copyLastModified()
- See also
getModifiedTime
setModifiedTime
-
def
getModifiedTime(file: File): Long
Return the last modification timestamp of the specified file, in milliseconds since the Unix epoch (January 1, 1970 UTC).
Return the last modification timestamp of the specified file, in milliseconds since the Unix epoch (January 1, 1970 UTC). This method will use whenever possible native code in order to return a timestamp with a 1-millisecond precision.
This is in contrast to lastModified() in java.io.File, and to getLastModifiedTime() in java.nio.file.Files, which on many implementations of the JDK prior to JDK 10 will return timestamps with 1-second precision.
If native code support is not available for the JDK/OS in use, this method will revert to the Java calls. Currently supported systems are Linux 64/32 bits, Windows, and OSX, all on Intel hardware.
Please note that even on those platforms, not all filesystems support sub-second timestamp resolutions. For instance, ext2/3, FAT, and HFS+ all have a one second resolution or higher for modification times. Conversely, ext4, NTFS, and APFS all support at least millisecond resolution, or finer.
If the file does not exist, or if it impossible to obtain the modification time because of access permissions of other reasons, this method will throw a FileNotFoundException or an IOException, as appropriate. This is the same behavior as the nio code in Files.getLastModifiedTime(). However note that, in contrast, Java's traditional lastModified() in java.io.File will return zero if an error occurs.
If you do not wish to use native calls, please define the property "sbt.io.jdktimestamps" to "true" (or anything other than "false"), and Java's get/setLastModifiedTime() will be used instead. This setting applies to setModifiedTime() and copyModifiedTime() as well.
This method was added in sbt/io v1.1.2, but it may be replaced in the future by a similar method that returns a Try, rather than throwing an exception. It is therefore marked as deprecated, since we cannot guarantee that it will remain available in future versions.
- Annotations
- @deprecated
- Deprecated
(Since version 1.1.3) This method might be removed in the future, also see getModifiedOrZero()
- See also
setModifiedTime
copyModifiedTime
-
def
jar(sources: Traversable[(File, String)], outputJar: File, manifest: Manifest): Unit
- Annotations
- @deprecated
- Deprecated
(Since version 1.3.2) Please specify whether to use a static timestamp
-
def
setModifiedTime(file: File, mtime: Long): Unit
Sets the modification time of the file argument, in milliseconds since the Unix epoch (January 1, 1970 UTC).
Sets the modification time of the file argument, in milliseconds since the Unix epoch (January 1, 1970 UTC). This method will use native code whenever possible in order to achieve a subsecond precision. Please see getModifiedTime() for further information. If it is impossible to set the modification time, the code will throw a FileNotFoundException or an IOException, as appropriate. This is similar to Files.setLastModifiedTime(). Note that, in contrast, Java's traditional setLastModified() will return a boolean false value if an error occurs.
This method may not work correctly if mtime is negative.
This method was added in sbt/io v1.1.2, but it may be replaced in the future by a similar method that returns a Try, rather than throwing an exception. It is therefore marked as deprecated, since we cannot guarantee that it will remain available in future versions.
- Annotations
- @deprecated
- Deprecated
(Since version 1.1.3) This method might be removed in the future, also see setModifiedTimeOrFalse()
- See also
getModifiedTime
copyModifiedTime
-
def
zip(sources: Traversable[(File, String)], outputZip: File): Unit
- Annotations
- @deprecated
- Deprecated
(Since version 1.3.2) Please specify whether to use a static timestamp