Christian Hansen

NAME

Mac::SystemDirectory - Locate Mac OS X Standard System Directories

SYNOPSIS

  use Mac::SystemDirectory qw[:all];
  
  $path = FindDirectory(NSDocumentDirectory);
  $path = HomeDirectory();
  $path = TemporaryDirectory();

DESCRIPTION

Locate Mac OS X Standard System Directories

FUNCTIONS

FindDirectory(Directory [, DomainMask])

Creates a list of path strings for the specified directories in the specified domains. The list is in the order in which you should search the directories.

Usage

    $path  = FindDirectory(NSApplicationDirectory);
    @paths = FindDirectory(NSApplicationDirectory);

Arguments

Directory

"Directory" constant.

DomainMask (optional)

"DomainMask" constant. Defaults to NSUserDomainMask.

Returns

When called in scalar context this function returns the first matching directory. In list context it returns all matching directories. If no directories are found, undef is returned in a scalar context and an empty list in a list context.

HomeDirectory()

Path to the current user's home directory.

Usage

    $path = HomeDirectory();

Returns

A string containing the path of the current user's home directory.

TemporaryDirectory()

Path to the current user's temporary directory.

Usage

    $path = TemporaryDirectory();

Returns

A string containing the path of the temporary directory for the current user. If no such directory is currently available, returns undef.

CONSTANTS

DomainMask

Bitmask constants that identify the file-system domain (User, System, Local, Network) or all domains.

NSUserDomainMask

The user's home directory-the place to install user's personal items (~).

Available in Mac OS X v10.0 and later.

NSLocalDomainMask

Local to the current machine-the place to install items available to everyone on this machine.

Available in Mac OS X v10.0 and later.

NSNetworkDomainMask

Publicly available location in the local area network-the place to install items available on the network (/Network).

Available in Mac OS X v10.0 and later.

NSSystemDomainMask

Provided by Apple - can't be modified (/System).

Available in Mac OS X v10.0 and later.

NSAllDomainsMask

All domains. Includes all of the above and future items.

Available in Mac OS X v10.0 and later.

Directory

Constants that identify the name or type of directory (for example, Library, Documents, or Applications).

NSApplicationDirectory

Supported applications (/Applications).

Available in Mac OS X v10.0 and later.

NSDemoApplicationDirectory

Unsupported applications and demonstration versions.

Available in Mac OS X v10.0 and later.

NSDeveloperApplicationDirectory

Developer applications (/Developer/Applications).

Available in Mac OS X v10.0 and later.

NSAdminApplicationDirectory

System and network administration applications.

Available in Mac OS X v10.0 and later.

NSLibraryDirectory

Various user-visible documentation, support, and configuration files (/Library).

Available in Mac OS X v10.0 and later.

NSDeveloperDirectory

Developer resources (/Developer). Deprecated: Beginning with Xcode 3.0, developer tools can be installed in any location.

Available in Mac OS X v10.0 and later.

NSUserDirectory

User home directories (/Users).

Available in Mac OS X v10.0 and later.

NSDocumentationDirectory

Documentation.

Available in Mac OS X v10.0 and later.

NSDocumentDirectory

Document directory.

Available in Mac OS X v10.2 and later.

NSCoreServiceDirectory

Location of core services (System/Library/CoreServices).

Available in Mac OS X v10.4 and later.

NSAutosavedInformationDirectory

Location of user's autosaved documents Documents/Autosaved

Available in Mac OS X v10.6 and later.

NSDesktopDirectory

Location of user's desktop directory.

Available in Mac OS X v10.4 and later.

NSCachesDirectory

Location of discardable cache files (Library/Caches).

Available in Mac OS X v10.4 and later.

NSApplicationSupportDirectory

Location of application support files (Library/Application Support).

Available in Mac OS X v10.4 and later.

NSDownloadsDirectory

Location of the user's downloads directory.

Available in Mac OS X v10.5 and later.

NSInputMethodsDirectory

Location of Input Methods (Library/Input Methods)

Available in Mac OS X v10.6 and later.

NSMoviesDirectory

Location of user's Movies directory (~/Movies)

Available in Mac OS X v10.6 and later.

NSMusicDirectory

Location of user's Movies directory (~/Music)

Available in Mac OS X v10.6 and later.

NSPicturesDirectory

Location of user's Movies directory (~/Pictures)

Available in Mac OS X v10.6 and later.

NSPrinterDescriptionDirectory

Location of system's PPDs directory (Library/Printers/PPDs)

Available in Mac OS X v10.6 and later.

NSSharedPublicDirectory

Location of user's Public sharing directory (~/Public)

Available in Mac OS X v10.6 and later.

NSPreferencePanesDirectory

Location of the PreferencePanes directory for use with System Preferences (Library/PreferencePanes)

Available in Mac OS X v10.6 and later.

NSItemReplacementDirectory

For use with NSFileManager method URLForDirectory:inDomain:appropriateForURL:create:error:

Available in Mac OS X v10.6 and later.

NSAllApplicationsDirectory

All directories where applications can occur.

Available in Mac OS X v10.0 and later.

NSAllLibrariesDirectory

All directories where resources can occur.

Available in Mac OS X v10.0 and later.

EXPORT

None by default. Functions and constants can either be imported individually or in sets grouped by tag names. The tag names are:

:all exports all functions and constants.
:DomainMask exports all "DomainMask" constants.
:Directory exports all "Directory" constants.

SEE ALSO

http://developer.apple.com/mac/library/DOCUMENTATION/Cocoa/Conceptual/LowLevelFileMgmt/Articles/StandardDirectories.html http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPFileSystem/BPFileSystem.html

AUTHOR

Christian Hansen, <chansen@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2009 by Christian Hansen

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.9 or, at your option, any later version of Perl 5 you may have available.