Hi I'm trying to read all files from a given server. What I want to do:
- Read all the folders
- Get the file URLs inside the folders
I tried this to get the folders and filey of my server, but it returned me an array with the folders of my MacBook:
NSURL *directory = [NSURL URLWithString:@"linktoserver"];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error = nil;
self.contentList = [[NSArray alloc] initWithArray:[fileManager contentsOfDirectoryAtURL:directory includingPropertiesForKeys:[[NSArray alloc] initWithObjects:NSURLNameKey, nil] options:NSDirectoryEnumerationSkipsHiddenFiles error:&error]];
if (error != nil) {
NSLog(@"ERROR: %@",[error localizedDescription]);
}
NSLog(@"%@",contentList);
Log:
> 2011-04-06 15:37:38.413 Bildergalerie[744:207] (
> "file://localhost/Applications/",
> "file://localhost/Benutzerhandbu%CC%88cher%20und%20Informationen",
> "file://localhost/Cancel",
> "file://localhost/Developer/",
> "file://localhost/Library/",
> "file://localhost/opt/",
> "file://localhost/Shockwave%20Log",
> "file://localhost/System/",
> "file://localhost/Users/",
> "file://localhost/usr/" )
Can anyone help me to find the answer? I'm really confused and Google didn't find a good solution or tutorial.
Thanks a lot, mavrick3.
You can't do this with NSFileManager. NSFileManager is intended to work with your file system (your device's file system) not with server.
you need to create a server side file which should give you folder/files url in xml file
You can not make use of NSFileManager to access the remote folders. This class is able to access the local directories only.
If your server supports FTP connection then you can make use of CFFTPStream.
CFFTPStream Reference
So if I understand correctly, you have the list of all the folders in the folder you need to read, but now you need specific files from each folder?
Then why don't you create a for-loop?
EDIT: If you mean you get the files from your Mac instead of the server you need, then you should change the line
contentsOfDirectoryAtURL:directory
to something likecontentsOfDirectoryAtURL:@"http://localhost/myserver/
.