Skip to content

Easy way to work with files, directories and paths in swift on macOS and linux.

License

Notifications You must be signed in to change notification settings

getGuaka/FileUtils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FileUtils

Build Status codecov Platform Language: Swift Carthage

Easy way to work with files, directories and paths in swift on macOS and linux.

Why?

You are developing a cli and you want to:

  • Read/Write files.
  • Create/Delete files.
  • Create/Delete/List directories.
  • Get different paths (Home/Current/Temp).
  • Get the base name and directory name of a path

You can use FileUtils with Guaka to create aweseome command line applications.

Note: At the moment, this library only deals with textual files contents. (Check todo section of this file).

Usage

File

Create a file

File(path: path, fileMode: .write)

// or
File.create(path: path)

Delete a file

File.delete(atPath: path)

Read file content

let content = File.read(atPath: path)

// or
let content = String.read(contentsOfFile: path)

Write file content

File.write(string: "ABCDEF", toPath: path, )

// or
"AAAAA".write(toFile: path)

Check if file exists

File.exists(path)

Path

Get temporary file and directory

let tmp = Path.tempPath

// or
let tmp = Path.tempFile

// or
let tmp = Path.tempFileName(withName: "abc.txt")

Get the current directory

let path = Path.currentDirectory

Get the home directory

let path = Path.home

Check if the path exists

let exists = Path.exists(path)

Check the type of the file at a path

let type = Path.type(ofPath: path)

type is a member of the PathType enum. This enum defines directory, executable, link and file

Expand a tilde in the path

let expanded = Path.expand("~/Documents")
// expanded is "/Users/YourUser/Documents"

Get the base name and the directory name of a path

let base = Path.baseName(forPath: "/Documents/this/is/mypath")
// base is "mypath"

let dir = Path.dirName(forPath: "/Documents/this/is/mypath")
// dir is "/Documents/this/is"

Directory

Create a directory

Directory.create(atPath: path)

Delete a directory

Directory.delete(atPath: path)

Enumerate contents of a directory

let (files, directories) = Directory.contents(ofDirectory: path)!

this returns a tuple that contains all the files and directories found at the path

Installation

You can install File using Swift package manager (SPM) and Carthage

Swift Package Manager

Add FileSystem as a dependency in your Package.swift

  import PackageDescription

  let package = Package(name: "YourPackage",
    dependencies: [
      .Package(url: "https://github.com/getGuaka/FileUtils.git", majorVersion: 0),
    ]
  )

Carthage

github "getGuaka/FileUtils"

Tests

Tests can be found here.

Run them with

swift test

Todo

  • Handle non textual files contents

Contributing

Just send a PR! We don't bite ;)

About

Easy way to work with files, directories and paths in swift on macOS and linux.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages