MBMLFileFunctions Class Reference

Inherits from NSObject
Declared in MBMLFileFunctions.h

Overview

This class implements MBML functions for file management.

These functions are exposed to the Mockingbird environment via <Function ... /> declarations in the MBDataEnvironmentModule.xml file.

For more information on MBML functions, see the MBMLFunction class.

Working with file paths

+ lastPathComponent:

Returns the lastPathComponent of a string containing a filesystem path.

+ (id)lastPathComponent:(NSString *)path

Parameters

path

The filesystem path.

Return Value

The lastPathComponent of path.

Discussion

This Mockingbird function accepts a single parameter: a string expression yielding a filesystem path.

Expression usage

^lastPathComponent(~/Library/Preferences/com.apple.Safari.plist)

The expression above would return the string “com.apple.Safari.plist

Declared In

MBMLFileFunctions.h

+ stripLastPathComponent:

Removes the lastPathComponent from a filesystem path and returns the resulting string.

+ (id)stripLastPathComponent:(NSString *)path

Parameters

path

The filesystem path.

Return Value

The result of removing the lastPathComponent from path.

Discussion

This Mockingbird function accepts a single parameter: a string expression yielding a filesystem path.

Expression usage

^stripLastPathComponent(~/Library/Preferences/com.apple.Safari.plist)

The expression above would return the string “~/Library/Preferences

Declared In

MBMLFileFunctions.h

+ pathExtension:

Returns the pathExtension of a string containing a filesystem path.

+ (id)pathExtension:(NSString *)path

Parameters

path

The filesystem path.

Return Value

The pathExtension of path.

Discussion

This Mockingbird function accepts a single parameter: a string expression yielding a filesystem path.

Expression usage

^pathExtension(~/Library/Preferences/com.apple.Safari.plist)

The expression above would return the string “plist

Declared In

MBMLFileFunctions.h

+ stripPathExtension:

Removes the pathExtension from a filesystem path and returns the resulting string.

+ (id)stripPathExtension:(NSString *)path

Parameters

path

The filesystem path.

Return Value

The result of removing the pathExtension from path.

Discussion

This Mockingbird function accepts a single parameter: a string expression yielding a filesystem path.

Expression usage

^stripPathExtension(~/Library/Preferences/com.apple.Safari.plist)

The expression above would return the string “~/Library/Preferences/com.apple.Safari

Declared In

MBMLFileFunctions.h

+ pathComponents:

Splits a filesystem path into individual path components and returns the result in an array.

+ (id)pathComponents:(NSString *)path

Parameters

path

The filesystem path.

Return Value

An NSArray containing the path components of path.

Discussion

This Mockingbird function accepts a single parameter: a string expression yielding a filesystem path.

Expression usage

^pathComponents(~/Library/Preferences/com.apple.Safari.plist)

The expression returns an array of strings containing: [“~”, “Library”, “Preferences”, “com.apple.Safari.plist” ].

Declared In

MBMLFileFunctions.h

Getting paths for common directories

+ directoryForHome

Returns the filesystem path of the NSHomeDirectory. On iOS, this is the filesystem path of the application’s home.

+ (id)directoryForHome

Return Value

The filesystem path of the directory.

Discussion

This Mockingbird function accepts no parameters.

Expression usage

^directoryForHome()

The expression above returns the filesystem path of the NSHomeDirectory.

Declared In

MBMLFileFunctions.h

+ directoryForTempFiles

Returns the filesystem path of the NSTemporaryDirectory.

+ (id)directoryForTempFiles

Return Value

The filesystem path of the directory.

Discussion

This Mockingbird function accepts no parameters.

Expression usage

^directoryForTempFiles()

The expression above returns the filesystem path of the NSTemporaryDirectory.

Declared In

MBMLFileFunctions.h

+ directoryForCaches

Returns the filesystem path of the NSCachesDirectory.

+ (id)directoryForCaches

Return Value

The filesystem path of the directory.

Discussion

This Mockingbird function accepts no parameters.

Expression usage

^directoryForCaches()

The expression above returns the filesystem path of the NSCachesDirectory.

Declared In

MBMLFileFunctions.h

+ directoryForDocuments

Returns the filesystem path of the NSDocumentDirectory.

+ (id)directoryForDocuments

Return Value

The filesystem path of the directory.

Discussion

This Mockingbird function accepts no parameters.

Expression usage

^directoryForDocuments()

The expression above returns the filesystem path of the NSDocumentDirectory.

Declared In

MBMLFileFunctions.h

+ directoryForDownloads

Returns the filesystem path of the NSDownloadsDirectory.

+ (id)directoryForDownloads

Return Value

The filesystem path of the directory.

Discussion

This Mockingbird function accepts no parameters.

Expression usage

^directoryForDownloads()

The expression above returns the filesystem path of the NSDownloadsDirectory.

Declared In

MBMLFileFunctions.h

+ directoryForApplicationSupport

Returns the filesystem path of the NSApplicationSupportDirectory.

+ (id)directoryForApplicationSupport

Return Value

The filesystem path of the directory.

Discussion

This Mockingbird function accepts no parameters.

Expression usage

^directoryForApplicationSupport()

The expression above returns the filesystem path of the NSApplicationSupportDirectory.

Declared In

MBMLFileFunctions.h

+ directoryForMovies

Returns the filesystem path of the NSMoviesDirectory.

+ (id)directoryForMovies

Return Value

The filesystem path of the directory.

Discussion

This Mockingbird function accepts no parameters.

Expression usage

^directoryForMovies()

The expression above returns the filesystem path of the NSMoviesDirectory.

Declared In

MBMLFileFunctions.h

+ directoryForMusic

Returns the filesystem path of the NSMusicDirectory.

+ (id)directoryForMusic

Return Value

The filesystem path of the directory.

Discussion

This Mockingbird function accepts no parameters.

Expression usage

^directoryForMusic()

The expression above returns the filesystem path of the NSMusicDirectory.

Declared In

MBMLFileFunctions.h

+ directoryForPictures

Returns the filesystem path of the NSPicturesDirectory.

+ (id)directoryForPictures

Return Value

The filesystem path of the directory.

Discussion

This Mockingbird function accepts no parameters.

Expression usage

^directoryForPictures()

The expression above returns the filesystem path of the NSPicturesDirectory.

Declared In

MBMLFileFunctions.h

+ directoryForPublicFiles

Returns the filesystem path of the NSSharedPublicDirectory.

+ (id)directoryForPublicFiles

Return Value

The filesystem path of the directory.

Discussion

This Mockingbird function accepts no parameters.

Expression usage

^directoryForPublicFiles()

The expression above returns the filesystem path of the NSSharedPublicDirectory.

Declared In

MBMLFileFunctions.h

Listing directory contents

+ listDirectory:

Lists the filenames within a given directory.

+ (id)listDirectory:(NSString *)dir

Parameters

dir

The filesystem path of the directory.

Return Value

An NSArray containing the names of the files contained within dir.

Discussion

This Mockingbird function accepts a single parameter: a string expression yielding the filesystem path of the directory whose contents are sought.

Expression usage

^listDirectory(^directoryForHome())

The expression above returns an array containing the names of the files within NSHomeDirectory.

Declared In

MBMLFileFunctions.h

Getting file information

+ fileExists:

Tests whether an item exists at the specified filesystem path.

+ (id)fileExists:(NSString *)filePath

Parameters

filePath

The filesystem path to test.

Return Value

@YES if the file exists at filePath; @NO otherwise.

Discussion

This Mockingbird function accepts a single parameter: a string expression yielding the filesystem path.

Expression usage

^fileExists(~/Downloads/MBToolbox.zip)

If a file exists at the path ~/Downloads/MBToolbox.zip, this expression will return @YES. Otherwise, @NO is returned.

Declared In

MBMLFileFunctions.h

+ fileIsReadable:

Tests whether a readable item exists at the specified filesystem path.

+ (id)fileIsReadable:(NSString *)filePath

Parameters

filePath

The filesystem path to test.

Return Value

@YES if a readable file exists at filePath; @NO otherwise.

Discussion

This Mockingbird function accepts a single parameter: a string expression yielding the filesystem path.

Expression usage

^fileIsReadable(/etc/passwd)

If a readable file exists at the path /etc/passwd, this expression will return @YES. Otherwise, @NO is returned.

Declared In

MBMLFileFunctions.h

+ fileIsWritable:

Tests whether a writable item exists at the specified filesystem path.

+ (id)fileIsWritable:(NSString *)filePath

Parameters

filePath

The filesystem path to test.

Return Value

@YES if a writable file exists at filePath; @NO otherwise.

Discussion

This Mockingbird function accepts a single parameter: a string expression yielding the filesystem path.

Expression usage

^fileIsWritable(/usr/bin/login)

If a writable file exists at the path /usr/bin/login, this expression will return @YES. Otherwise, @NO is returned.

Declared In

MBMLFileFunctions.h

+ fileIsDeletable:

Tests whether a deletable item exists at the specified filesystem path.

+ (id)fileIsDeletable:(NSString *)filePath

Parameters

filePath

The filesystem path to test.

Return Value

@YES if a deletable file exists at filePath; @NO otherwise.

Discussion

This Mockingbird function accepts a single parameter: a string expression yielding the filesystem path.

Expression usage

^fileIsDeletable(/tmp)

If a deletable file exists at the path /tmp, this expression will return @YES. Otherwise, @NO is returned.

Declared In

MBMLFileFunctions.h

+ isDirectoryAtPath:

Tests whether a directory exists at a given filesystem path.

+ (id)isDirectoryAtPath:(NSString *)filePath

Parameters

filePath

The filesystem path to test.

Return Value

@YES if a directory exists at filePath; @NO otherwise.

Discussion

This Mockingbird function accepts a single parameter: a string expression yielding the filesystem path.

Expression usage

^isDirectoryAtPath(~/Caches/com.gilt.ios)

If a directory file exists at the path ~/Caches/com.gilt.ios, this expression will return @YES. Otherwise, @NO is returned.

Declared In

MBMLFileFunctions.h

+ sizeOfFile:

Returns the size of the file at the given filesystem path.

+ (id)sizeOfFile:(NSString *)filePath

Parameters

filePath

The filesystem path.

Return Value

An NSNumber containing the size of the file at filePath.

Discussion

This Mockingbird function accepts a single parameter: a string expression yielding the filesystem path.

Expression usage

The expression:

^sizeOfFile(~/Caches/com.gilt.ios/Images/superhero.jpg)

returns the size of the file at ~/Caches/com.gilt.ios/Images/superhero.jpg in an NSNumber containing an unsigned long long value.

Declared In

MBMLFileFunctions.h

Getting file content

+ fileData:

Returns an NSData instance with the content of the file at the specified filesystem path.

+ (id)fileData:(NSString *)filePath

Parameters

filePath

The filesystem path.

Return Value

An NSData instance containing the content of the file at filePath.

Discussion

This Mockingbird function accepts a single parameter: a string expression yielding the filesystem path.

Expression usage

The expression:

^fileData(~/Caches/com.gilt.ios/Images/superhero.jpg)

returns the content of ~/Caches/com.gilt.ios/Images/superhero.jpg as an NSData instance.

If the file doesn’t exist or couldn’t be read, nil will be returned.

Declared In

MBMLFileFunctions.h

+ fileContents:

Returns a UTF-8 encoded NSString instance with the content of the file at the specified filesystem path.

+ (id)fileContents:(NSString *)filePath

Parameters

filePath

The filesystem path.

Return Value

An NSString instance containing the content of the file at filePath.

Discussion

This Mockingbird function accepts a single parameter: a string expression yielding the filesystem path.

Expression usage

The expression:

^fileContents(~/Documents/README.txt)

returns the content of ~/Documents/README.txt as an NSString instance.

If the file doesn’t exist or couldn’t be read, nil will be returned.

Declared In

MBMLFileFunctions.h

Removing files

+ deleteFile:

Attempts to delete the item at the specified filesystem path.

+ (id)deleteFile:(NSString *)filePath

Parameters

filePath

The filesystem path.

Return Value

@YES if filePath was successfully deleted; @NO otherwise.

Discussion

This Mockingbird function accepts a single parameter: a string expression yielding the filesystem path.

Expression usage

The expression:

^deleteFile(/tmp/download-in-progress)

attempts to delete the file at /tmp/download-in-progress. If successful, @YES is returned; otherwise, @NO is returned.

Declared In

MBMLFileFunctions.h