Skip to content

File System Paths

On Android, app files must be stored in app-specific directories rather than arbitrary file system locations. The SDK maps standard Foundation path functions to the correct Android directories.

FunctionReturns
NSHomeDirectory()App data directory: /data/data/<package>/files
NSTemporaryDirectory()App cache directory: /data/data/<package>/cache
NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)App data directory
NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true)App cache directory

Store a file in the app data directory:

let home = NSHomeDirectory()
let filePath = home + "/myfile.json"
try data.write(to: URL(fileURLWithPath: filePath))

Use FileManager to get the documents directory:

let urls = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
let documentsURL = urls[0]
let fileURL = documentsURL.appendingPathComponent("myfile.json")
try data.write(to: fileURL)

Get a temporary path for scratch files:

let tmpDir = NSTemporaryDirectory()
let tmpFile = tmpDir + UUID().uuidString