fileExistsAtPath :isDirectory:
Returns a Boolean value that indicates whether a file or directory exists at a specified path.
- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory
Parameters
- path
- The path of a file or directory. If path begins with a tilde (
~
), it must first be expanded withstringByExpandingTildeInPath
, or this method will returnNO
. - isDirectory
- Upon return, contains
YES
if path is a directory or if the final path element is a symbolic link that points to a directory, otherwise containsNO
. If path doesn’t exist, this value is undefined upon return. PassNULL
if you do not need this information.
Return Value of [NSFileManager fileExistsAtPath: isDirectory:]
YES
if a file at the specified path exists or NO
if the file’s does not exist or its existence could not be determined.Discussion of [NSFileManager fileExistsAtPath: isDirectory:]
If the file at path is inaccessible to your app, perhaps because one or more parent directories are inaccessible, this method returns
NO
. If the final element in pathspecifies a symbolic link, this method traverses the link and returns YES
or NO
based on the existence of the file at the link destination.
If you need to further determine if path is a package, use the
isFilePackageAtPath:
method of NSWorkspace
.
Example of [NSFileManager fileExistsAtPath: isDirectory:]
This example 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]; |
// ... |
[fileManager release]; |