Monday, April 22, 2013

NSFileManager fileExistsAtPath isDirectory example ios


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 with stringByExpandingTildeInPath, or this method will return NO.
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 contains NO. If path doesn’t exist, this value is undefined upon return. Pass NULL 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 theisFilePackageAtPath: 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];