Get all folders of URL

2020-01-27 07:55发布

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.

3条回答
时光不老,我们不散
2楼-- · 2020-01-27 08:31

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

查看更多
Explosion°爆炸
3楼-- · 2020-01-27 08:48

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

查看更多
The star\"
4楼-- · 2020-01-27 08:54

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?

for (int i = 0; i < [contentlist count]; i++
{
    //do your trick to get the file in the folder
    //save it
}

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 like contentsOfDirectoryAtURL:@"http://localhost/myserver/.

查看更多
登录 后发表回答