0

iPhone初心者ですが、

ユーザーが何かをダウンロードすると、ダウンロードされるアプリを作成しましたDocumentDirectory

作成したフォルダ内にダウンロードしたいDocumentDirectory

これを達成する方法は?

ファイルを自分のフォルダにダウンロードし、DocumentDirectoryそのファイルを 内の自分のフォルダに移動すると思いDocumentDirectoryました。

それは良い習慣ですか?

これが私のコード スニペットですが、それでもファイルを移動できません。

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {

    NSString *file = [NSString stringWithString:[url absoluteString]];
    NSURL *fileURL = [NSURL URLWithString:file];

    NSURLRequest *req = [NSURLRequest requestWithURL:fileURL];
    [NSURLConnection connectionWithRequest:req delegate:self];


    NSString *DestPath=[[[SourcePath stringByAppendingString:@"/"]stringByAppendingString:BookCateg]stringByAppendingString:@"/"];

                   if ([fm copyItemAtPath:SourcePath toPath:DestPath error:&error]) 
                   {
                      NSLog(@"Success !");
                   }
                  else{
                      NSLog(@"Fail to Move!");
                   }

}

私のログが表示されますFail to Move!

どんな助けでも大歓迎です。

4

4 に答える 4

8

ファイルをドキュメントディレクトリのフォルダーに直接ダウンロードする必要があります。そのためには、@iPhone Developerが提案したようにディレクトリを作成し、そのディレクトリにファイルを書き込む必要があります

例えば:

  NSString *stringPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"/File"];
  error = nil;
  if (![[NSFileManager defaultManager] fileExistsAtPath:stringPath])
    [[NSFileManager defaultManager] createDirectoryAtPath:stringPath withIntermediateDirectories:NO attributes:nil error:&error];

  NSURL *url = [NSURL URLWithString:@"http://www.ndqatar.mobi/18December/admin/rington/133/QatarDay13.mp3"];
  NSData *data = [NSData dataWithContentsOfURL:url];
  if(data)
  {
    stringPath = [stringPath stringByAppendingPathComponent:[url lastPathComponent]];
    [data writeToFile:stringPath atomically:YES];
  }

必要に応じて、次のようにファイルを移動できます。

 NSString *destPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"/Dest"];
  error = nil;
  if (![[NSFileManager defaultManager] fileExistsAtPath:destPath])
    [[NSFileManager defaultManager] createDirectoryAtPath:destPath withIntermediateDirectories:NO attributes:nil error:&error];
  destPath = [destPath stringByAppendingPathComponent:[stringPath lastPathComponent];];

 [[NSFileManager defaultManager] copyItemAtPath:stringPath toPath:destPath error:&error];
于 2012-07-25T06:58:06.947 に答える
3

次のコードを使用できます。

NSString *stringPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"/Your Folder Name"];

    error = nil;
    if (![[NSFileManager defaultManager] fileExistsAtPath:stringPath])
        [[NSFileManager defaultManager] createDirectoryAtPath:stringPath withIntermediateDirectories:NO attributes:nil error:&error];
NSString *DestPath=[stringPath stringByAppendingString:@"/Your file Name"];
于 2012-07-25T06:43:01.823 に答える
1

パスコンポーネントを追加して文字列の代わりに文字列を追加して文字列を使用しています。これによりパスが追加され、ファイルがそこに移動します

コーディングを楽しむ

于 2012-07-25T06:56:10.060 に答える