0

オーディオレコーダー(m4a拡張子ファイル)を作っています。記録されたファイル(ディレクトリ内)の出力用に特定の URL を指定しています。私はそれを再生し、ファイルのパスをデータベースに保存し、後で取得することができます。すべてがうまくいっています。しかし、保存済み/未保存のファイルを削除できません。オーディオを録音するたびに、ファイルは永続的なスペースを使用しています。それらを削除できません。

インターネット経由で試しました(もちろんスタックオーバーフロー)。次のようなリンクを取得しました:動画の URL があり、この URL を使用して iPhone から削除したい

しかし、次のようなコードを使用して削除しようとすると、 COCOA ERROR 4が表示されます。 [[NSFileManager defaultManager] removeItemAtPath:strPath error:&error];

提案して返信してください

4

3 に答える 3

0

通常、Apps ドキュメント ディレクトリに保存したリソースに対して、次のようにこれを行います。

unlink([pathForURL UTF8String]);

wherepathForURLは、削除するリソースへのパスを記述する NSString です。

于 2013-10-28T19:26:58.270 に答える
0

これは以前に取得していたパスで、ファイルを書き込むことができませんでした

/var/mobile/Applications/8584F54E-75D2-4833-8826-29C125E53DBC/Library/Documentation/291013193758w.png

今朝、コードをもう一度実行しました。今、その道を示しています

/var/mobile/Applications/DDA14123-6A88-4756-B2E4-C4A3AA39AA5B/ドキュメント/291013081335test.png

このパスにファイルを書き込むことができます

2 つのパスの違いは、1 つ目は Library/Documentationで、2 つ目は Documents です。

違いはわかりませんが、現在は機能しています

于 2013-10-31T06:44:01.870 に答える
0

指定したファイル パスが正しくない場合があります。正しい場合は、URL をたどってみてください。問題が解決する可能性があります

NSString *str= [outputFieldURL absoluteString];

    NSError *error;

    NSURL *url = [NSURL URLWithString:str];
    BOOL success = [[NSFileManager defaultManager] removeItemAtURL:url error:&error];


    if (!success) {
        NSLog(@"Error removing file at path: %@", error.localizedDescription);
    }
    else
    {
        NSLog(@"File removed  at path: %@", error.localizedDescription);
    }
}

ファイルを削除する前に、ファイルがあるかどうかを確認する必要があります。

 NSFileManager* manager = [[NSFileManager alloc] init];
 if ([manager fileExistsAtPath:path]) {
    [manager removeItemAtPath:path error:&error];
 }
于 2013-10-30T08:06:00.957 に答える