カメラで撮影した写真とアプリケーションのビデオ録画を一時ディレクトリの別のフォルダに一時的に保存したいと考えています。タスクが完了すると、データベースに保存されます。
カメラおよびビデオ録画ファイルから撮影した写真を一時ディレクトリ内の別のフォルダに保存するにはどうすればよいですか?
カメラで撮影した写真とアプリケーションのビデオ録画を一時ディレクトリの別のフォルダに一時的に保存したいと考えています。タスクが完了すると、データベースに保存されます。
カメラおよびビデオ録画ファイルから撮影した写真を一時ディレクトリ内の別のフォルダに保存するにはどうすればよいですか?
これを探して、一時ファイルを保存するためのキャッシュ フォルダーを取得します。
NSString* path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,
NSUserDomainMask,
YES) lastObject];
そこから、必要なNSFileManager
ディレクトリを作成および削除するために使用できます。また、ファイル システムの他の部分と同じようにファイルを保存します。システムが時々キャッシュ ディレクトリをパージすることに注意してください。
そのため、アプリを再起動するまでの間、ファイルが残っている、または消えていることに決して依存しないでください。
これを試して:
NSString *tmpDirectory = NSTemporaryDirectory();
NSString *tmpFile = [tmpDirectory stringByAppendingPathComponent:@"temp.txt"];
NSLog(@"Temp File:%@", tmpFile);
一時ディレクトリからすべてのファイルを削除する場合は、これを使用します。
//cleanup temp files
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *paths = NSTemporaryDirectory();
NSArray *contents = [fileManager contentsOfDirectoryAtPath:paths error:NULL];
NSEnumerator *e = [contents objectEnumerator];
NSString *filename;
//NSLog(@"paths: %@ ... contents: %@ ...",paths, contents);
while ((filename = [e nextObject]))
{
[fileManager removeItemAtPath:[paths stringByAppendingPathComponent:filename] error:NULL];
}
独自のTempフォルダを作成できます...
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *tempFolderPath = [documentsDirectory stringByAppendingPathComponent:@"Temp"];
[[NSFileManager defaultManager] createDirectoryAtPath:tempFolderPath withIntermediateDirectories:YES attributes:nil error:NULL];
写真とビデオを別のディレクトリに保存するには、そのディレクトリ パスを変更し、データベースへのパスを保存する必要があります。以下のコードをチェックして、ドキュメント ディレクトリにフォルダーを作成し、一意の名前でファイルを保存します。
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@“/images”];
if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])
{
[[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:&error];
}
NSString *destinationPath = [dataPath stringByAppendingFormat:@"/output_%@.jpg", [dateFormatter stringFromDate:[NSDate date]]];