1. Detect current directory
2. Change current directory
3. Create new directory
4. Move directory
5. Delete directory.
6. Enumerate the content.
Here is a simple program demonstrating these basic directory operations:
#import <Foundation/NSObject.h>
#import <Foundation/NSString.h>
#import <Foundation/NSFileManager.h>
#import <Foundation/NSAutoreleasePool.h>
int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString *dirName = @"testDir";
NSString *path;
NSFileManager *fm;
BOOL success;
fm = [NSFileManager defaultManager];
path = [fm currentDirectoryPath];
NSLog(@"Current directory path is %@", path);
success = [fm createDirectoryAtPath: dirName attributes: nil];
if (success == YES)
{
success = [fm movePath: dirName toPath: @"newDir" handler: nil];
if (success == YES)
{
success = [fm changeCurrentDirectoryPath: @"newDir"];
if (success == YES)
{
path = [fm currentDirectoryPath];
NSLog(@"Current directory path is %@", path);
}
else
{
NSLog(@"Couldn't change the current directory");
}
}
else
{
NSLog(@"Couldn't rename the directory");
}
}
else
{
NSLog(@"Couldn't create directory");
}
[pool drain];
return 0;
}
The following program enumerates the directory content:
#import <Foundation/NSString.h>
#import <Foundation/NSFileManager.h>
#import <Foundation/NSAutoreleasePool.h>
#import <Foundation/NSArray.h>
int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString *path;
NSFileManager *fm;
NSDirectoryEnumerator *dirEnum;
fm = [NSFileManager defaultManager];
[fm changeCurrentDirectoryPath: @"/Users/pavelgnatyuk/Documents/Hello"];
path = [fm currentDirectoryPath];
dirEnum = [fm enumeratorAtPath: path];
NSLog(@"Content of %@:", path);
do
{
path = [dirEnum nextObject];
if (path == nil)
break;
NSLog(@"%@", path);
} while(YES);
[pool drain];
return 0;
}
Let's prevent the enumerating of the subfolders:
#import <Foundation/NSString.h>Or just:
#import <Foundation/NSFileManager.h>
#import <Foundation/NSAutoreleasePool.h>
#import <Foundation/NSArray.h>
int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString *path;
NSFileManager *fm;
NSDirectoryEnumerator *dirEnum;
BOOL flag;
fm = [NSFileManager defaultManager];
[fm changeCurrentDirectoryPath: @"/Users/pavelgnatyuk"];
path = [fm currentDirectoryPath];
dirEnum = [fm enumeratorAtPath: path];
NSLog(@"Content of %@:", path);
do
{
path = [dirEnum nextObject];
if (path == nil)
break;
NSLog(@"%@", path);
[fm fileExistsAtPath: path isDirectory: &flag];
if (flag == YES)
[dirEnum skipDescendents];
} while(YES);
[pool drain];
return 0;
}
#import <Foundation/NSString.h>
#import <Foundation/NSFileManager.h>
#import <Foundation/NSAutoreleasePool.h>
#import <Foundation/NSArray.h>
int main (int argc, const char * argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSString *path= @"/Users/pavelgnatyuk";
NSFileManager *fm;
NSArray *dirArray;
fm = [NSFileManager defaultManager];
NSLog(@"Content of %@:", path);
dirArray = [fm directoryContentsAtPath: path];
for (path in dirArray)
NSLog(@"%@", path);
[pool drain];
return 0;
}
No comments:
Post a Comment