Directory

public class Directory: MutableFileSystemItem

A directory which exists in the local filesystem (at least at the time of initialisation).

  • If true, then you can only make changes to the file system in the current working directory, or any of its subdirectories.

    Declaration

    Swift

    public static var sandbox = true
  • The path to this directory.

    Declaration

    Swift

    public internal(set) var path: DirectoryPath
  • Opens an already existing directory.

    Parameter

    Parameter path: The path to the directory.

    Throws

    FileSystemError.notFound, .notDirectory, .invalidAccess.

    Declaration

    Swift

    public required init(open path: DirectoryPath) throws

    Parameters

    path

    The path to the directory.

  • Opens an already existing directory.

    Parameter

    Parameter stringpath: The string path to the directory.

    Throws

    FileSystemError.notFound, .notDirectory, .invalidAccess.

    Declaration

    Swift

    public required convenience init(open stringpath: String) throws

    Parameters

    stringpath

    The string path to the directory.

  • Creates a new directory.

  • Parameters:

    • path: The path where the new directory should be created.
    • ifExists: What to do if it already exists: open, throw error or replace.
  • Throws

    FileSystemError.notDirectory, .alreadyExists, .outsideSandbox.

    Declaration

    Swift

    public init(create path: DirectoryPath, ifExists: AlreadyExistsOptions) throws

    Parameters

    path

    The path where the new directory should be created.

    ifExists

    What to do if it already exists: open, throw error or replace.

  • Creates a new directory.

  • Parameters:

    • path: The string path where the new directory should be created.
    • ifExists: What to do if it already exists: open, throw error or replace.
  • Throws

    FileSystemError.notDirectory, .alreadyExists, .outsideSandbox.

    Declaration

    Swift

    public convenience init(create stringpath: String, ifExists: AlreadyExistsOptions) throws

    Parameters

    path

    The string path where the new directory should be created.

    ifExists

    What to do if it already exists: open, throw error or replace.

  • Lists all directories under this directory matching the pattern.

  • Parameters:

    • pattern: A glob pattern, supporting wilcards and ?. The default is , matching everything.
    • recursive: If true, searches all subdirectories and their subdirectories etc. The default is false.
  • Returns

    An array of DirectoryPath.

    Declaration

    Swift

    public func directories(_ pattern: String = "*", recursive: Bool = false) -> [DirectoryPath]

    Parameters

    pattern

    A glob pattern, supporting wilcards “”, matching everything.

    recursive

    If true, searches all subdirectories and their subdirectories etc. The default is false.

    Return Value

    An array of DirectoryPath.

  • Lists all files under this directory matching the pattern.

  • Parameters:

    • pattern: A glob pattern, supporting wilcards and ?. The default is , matching everything.
    • recursive: If true, searches all subdirectories and their subdirectories etc. The default is false.
  • Returns

    An array of FilePath.

    Declaration

    Swift

    public func files(_ pattern: String = "*", recursive: Bool = false) -> [FilePath]

    Parameters

    pattern

    A glob pattern, supporting wilcards “”, matching everything.

    recursive

    If true, searches all subdirectories and their subdirectories etc. The default is false.

    Return Value

    An array of FilePath.

  • Returns true if there is a file or directory at ‘stringpath’ relative to this directory.

    Declaration

    Swift

    public func contains(_ stringpath: String) -> Bool
  • Throws an error if there is not a file or directory at ‘stringpath’ relative to this directory. - Throws: FileSystemError.notFound.

    Declaration

    Swift

    public func verifyContains(_ stringpath: String) throws
  • Creates a new file at ‘stringpath’, relative to this directory.

  • Parameters:

    • stringpath: The path where the new file should be created.
    • ifExists: What to do if it already exists: open, throw error or replace.
  • Returns

    A WritableFile ready to write to the new file.

    Throws

    FileSystemError.isDirectory, .couldNotCreate, .alreadyExists, .outsideSandbox.

    Declaration

    Swift

    public func create(file stringpath: String, ifExists: AlreadyExistsOptions) throws -> WritableFile

    Parameters

    stringpath

    The path where the new file should be created.

    ifExists

    What to do if it already exists: open, throw error or replace.

    Return Value

    A WritableFile ready to write to the new file.

  • Creates a new directory at ‘stringpath’, relative to this directory.

  • Parameters:

    • stringpath: The path where the new directory should be created.
    • ifExists: What to do if it already exists: open, throw error or replace.
  • Returns

    A WritableFile ready to write to the new file.

    Throws

    FileSystemError.notDirectory, .alreadyExists, .outsideSandbox.

    Declaration

    Swift

    public func create(directory stringpath: String, ifExists: AlreadyExistsOptions) throws -> Directory

    Parameters

    stringpath

    The path where the new directory should be created.

    ifExists

    What to do if it already exists: open, throw error or replace.

    Return Value

    A WritableFile ready to write to the new file.

  • Opens for reading the file at ‘stringpath’, relative to this directory.

    Parameter

    Parameter stringpath: the path to the file, relative to this directory.

    Returns

    A ReadableFile ready to read from the file.

    Throws

    FileSystemError.notFound, .isDirectory, .invalidAccess.

    Declaration

    Swift

    public func open(file stringpath: String) throws -> ReadableFile

    Parameters

    stringpath

    the path to the file, relative to this directory.

    Return Value

    A ReadableFile ready to read from the file.

  • Opens for writing the file at ‘stringpath’, relative to this directory.

    Parameter

    Parameter stringpath: the path to the file, relative to this directory.

    Returns

    A WritableFile ready to write to the file.

    Throws

    FileSystemError.notFound, .isDirectory, .invalidAccess, .outsideSandbox.

    Declaration

    Swift

    public func edit(file stringpath: String) throws -> WritableFile

    Parameters

    stringpath

    the path to the file, relative to this directory.

    Return Value

    A WritableFile ready to write to the file.

  • Opens the directory at ‘stringpath’, relative to this directory.

    Parameter

    Parameter stringpath: the path to the directory, relative to this directory.

    Returns

    A Directory object.

    Throws

    FileSystemError.notFound, .notDirectory, .invalidAccess.

    Declaration

    Swift

    public func open(directory stringpath: String) throws -> Directory

    Parameters

    stringpath

    the path to the directory, relative to this directory.

    Return Value

    A Directory object.

  • Deletes this directory. For ever.

    Throws

    FileSystemError.outsideSandbox, NSError.

    Declaration

    Swift

    public func delete() throws
  • The current working directory.

    Declaration

    Swift

    public static var current: Directory
  • The current user’s home directory.

    Declaration

    Swift

    public static var home: Directory
  • The root directory in the local file system.

    Declaration

    Swift

    public static var root: Directory
  • Creates a new empty temporary directory, guaranteed to be unique every time.

    Declaration

    Swift

    public static func createTempDirectory() -> Directory
  • Creates a symbolic link at ‘newlink’ pointing to the directory at ‘target’.

  • Parameters:

    • newlink: The path to the new symbolic link.
    • target: The directory the new link should point to.
    • ifExists: What to do if there already is something at newlink: open, throw error or replace.
  • Throws

    FileSystemError.notDirectory, .alreadyExists, .outsideSandbox, .invalidAccess.

    Declaration

    Swift

    public convenience init(createSymbolicLink newlink: DirectoryPath, to target: Directory, ifExists: AlreadyExistsOptions) throws

    Parameters

    newlink

    The path to the new symbolic link.

    target

    The directory the new link should point to.

    ifExists

    What to do if there already is something at newlink: open, throw error or replace.

  • Creates a symbolic link at ‘newlink’ pointing to the directory at ‘target’.

  • Parameters:

    • newlink: The path to the new symbolic link, relative to this directory.
    • target: The directory the new link should point to.
    • ifExists: What to do if there already is something at newlink: open, throw error or replace.
  • Throws

    FileSystemError.notDirectory, .alreadyExists, .outsideSandbox, .invalidAccess.

    Declaration

    Swift

    public func create(symbolicLink newlink: String, to target: Directory, ifExists: AlreadyExistsOptions) throws -> Directory

    Parameters

    newlink

    The path to the new symbolic link, relative to this directory.

    target

    The directory the new link should point to.

    ifExists

    What to do if there already is something at newlink: open, throw error or replace.

  • Creates a symbolic link at ‘newlink’ pointing to the file at ‘target’.

  • Parameters:

    • newlink: The path to the new symbolic link, relative to this directory.
    • target: The file the new link should point to.
    • ifExists: What to do if there already is something at newlink: open, throw error or replace.
  • Throws

    FileSystemError.isDirectory, .alreadyExists, .outsideSandbox, .invalidAccess.

    Declaration

    Swift

    public func create<NewFile:File, TargetFile:File>(symbolicLink newlink: String, to target: TargetFile, ifExists: AlreadyExistsOptions) throws -> NewFile

    Parameters

    newlink

    The path to the new symbolic link, relative to this directory.

    target

    The file the new link should point to.

    ifExists

    What to do if there already is something at newlink: open, throw error or replace.