2

リモートから一時フォルダーにファイルをダウンロードしたい

次のようなリモートのフォルダー:

http://remoteserver.com/abc/def/file1.txt
http://remoteserver.com/abc/file2.png
http://remoteserver.com/abc/pla/mnb/file3.html

フォルダ構造は次のようになります。

tmpefolder/abc/def/file1.txt
tmpefolder/abc/file2.png
tmpefolder/abc/pla/mnb/file3.html

そして、ダウンロード後、ファイルを永続的なフォルダーに移動し、同じフォルダー構造を維持します

permanentfolder/abc/def/file1.txt
permanentfolder/abc/file2.png
permanentfolder/abc/pla/mnb/file3.html

最後に、一時フォルダー内のすべてのファイルを削除します

だから私の質問は:

  1. サーバーから複数のファイルをダウンロードする最良の方法は何ですか? (ASIHTTPRequest を表示する方が良いです。別の方法を表示しても問題ありません)

  2. フォルダの構造全体を作成する簡単な方法は? フォルダ パスを「/」で分割し、すべてのレベル パスが存在することを確認して作成する必要がありますか?

  3. 一時フォルダーの内容全体を永続フォルダーにコピーする方法は? OS X のコピーのような 1 つの操作でこれを行うことは可能ですか?

  4. また、OS Xの削除操作のように一時フォルダを一発で削除?

ありがとうございました!

4

2 に答える 2

0

1/ を使ったほうがいいAFNetworkASIHTTPRequest古くなり、維持されなくなりました。AFNetworkより現代的で、ブロックで動作します (ホーマーが言うように、「うーん、ブロック」)。このあたりにはたくさんの例があります。検索してみてください。

具体的には、AFNetworkダウンロード操作を に入れ、自由NSOperationQueueに処理できるようにします。たとえば、35 個のファイルを並行してダウンロードし、同時に最大 4 つのダウンロードを実行し、すべてが完了したらレポートします。

2, 3, 4/ のリファレンスを見てくださいNSFileManager。必要なものはすべてそろっています。

于 2012-04-06T07:36:12.033 に答える
-1

すべてのファイルの .zip を作成し、次のコードを使用して .zip フォーム サーバーをダウンロードします。これにより、NSTemporaryDirectory にフォルダーが作成されます。

 NSString *filePath = [NSString stringWithFormat:@"%@/FILENAME.zip",NSTemporaryDirectory()];
 [[NSFileManager defaultManager] createFileAtPath:filePath contents:[NSData dataWithContentsOfURL:[NSURL URLWithString:[obj valueForKey:@"zip_path"]]] attributes:nil];

ダウンロード後、フォルダを documentDirectory に移動します。

[[NSFileManager defaultManager] moveItemAtPath:filePath toPath:[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] error:nil];

次のコードは一時ファイルからファイルを削除します

[[NSFileManager defaultManager] removeItemAtPath:filePath error:nil];
于 2012-04-06T10:21:31.337 に答える