fileExists(atPath:isDirectory:)
Returns a Boolean value that indicates whether a file or directory exists at a specified path.
Declaration
func fileExists(atPath path: String, isDirectory: UnsafeMutablePointer<ObjCBool>?) -> BoolParameters
- path:
The path of a file or directory. If
pathbegins with a tilde (~), it must first be expanded with Expandingtildeinpath, or this method will return False. - isDirectory:
Upon return, contains True if
pathis a directory or if the final path element is a symbolic link that points to a directory; otherwise, contains False. Ifpathdoesn’t exist, this value is undefined upon return. PassNULLif you do not need this information.
Return Value
true if a file at the specified path exists, or false if the file’s does not exist or its existence could not be determined.
Discussion
If the file at path is inaccessible to your app, perhaps because one or more parent directories are inaccessible, this method returns false. If the final element in path specifies a symbolic link, this method traverses the link and returns true or false based on the existence of the file at the link destination.
If you need to further determine whether path is a package, use the isFilePackage(atPath:) method of NSWorkspace.
The following example code gets an array that identifies the fonts in the user’s fonts directory:
NSArray *subpaths;
BOOL isDir;
NSArray *paths = NSSearchPathForDirectoriesInDomains
(NSLibraryDirectory, NSUserDomainMask, YES);
if ([paths count] == 1) {
NSFileManager *fileManager = [[NSFileManager alloc] init];
NSString *fontPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"Fonts"];
if ([fileManager fileExistsAtPath:fontPath isDirectory:&isDir] && isDir) {
subpaths = [fileManager subpathsAtPath:fontPath];
// ...