私のiOSアプリでは、そのユーザーがiTunes経由でjpgファイルをダウンロードできるようにしたいと考えています。そこでUIFileSharingEnabledを有効にしました。しかし、ユーザーは今、私のアプリにファイルを置くことができます。私はそれをブロックしたいと思います。それを行う方法はありますか?UIFileSharingEnabled justeファイルを保存する
ありがとうございます!
私のiOSアプリでは、そのユーザーがiTunes経由でjpgファイルをダウンロードできるようにしたいと考えています。そこでUIFileSharingEnabledを有効にしました。しかし、ユーザーは今、私のアプリにファイルを置くことができます。私はそれをブロックしたいと思います。それを行う方法はありますか?UIFileSharingEnabled justeファイルを保存する
ありがとうございます!
ブロックすることはできませんが、あなたのアプリがアクティブになったときに不要なファイルを削除するだけで済みます。
下のサンプルのようなコードをいくつか入れてください。テストを記入して、iTunesで利用可能にしたいファイルを削除しないようにしてください。
applicationDidBecomeActive:をアプリケーションデリゲート内から呼び出します。
もっと慎重にしたいのであれば、そこに駐車したjpgファイルと同じ名前のjpgファイルをドロップしていないことを確認したいかもしれません。あなたは日付の同一性かそのようなものかをテストすることができます。もし多くのファイルがない場合は、すべてが削除され、アプリケーションがアクティブになったときに再び書き込まれます。
- (void) removeUnwantedFiles;
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSArray* directoryContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:inboxPath error:NULL];
if (!directoryContents || [directoryContents count] == 0)
{
return;
}
for (NSString* fileName in directoryContents)
{
if (/* some test of filename to see if it's one of my kosher files */) continue;
NSString* filePath = [documentsDirectory stringByAppendingPathComponent:fileName];
NSError* error = nil;
BOOL success = [[NSFileManager defaultManager] removeItemAtPath:filePath error:&error];
// NSLog(@"Deleting (%@): %@", success ? @"succeeded" : @"failed", [filePath lastPathComponent]);
if (!success)
{
NSLog(@"Error: %@", [error localizedDescription]);
}
}
}
よろしくお願いします。 :) – Pierre