Thanks to visit codestin.com
Credit goes to github.com

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

Contributors 5

Languages