2016-04-02 11 views
1

私の質問はかなり簡単です。 (File#createTempFileを使用して)アンドロイドで一時ファイルを作成し、そのファイルを別のディレクトリ(/キャッシュから/アプリケーションのストレージのファイル)に移動すると、そのファイルは永続化されますか?あるいは永続化する方法はありますか?それともコピーしてオリジナルを削除する必要がありますか?一時ファイルは移動すると永続化されますか?

答えて

2

あなたが指定したcreateTempFileの亜種には、ファイルの格納ディレクトリの指定が必要です。そのディレクトリがオペレーティングシステムの管理下にある一時ファイルストア(Unixライクなシステムでは/tmpなど)内にある場合は、一時階層から「通常の」ディレクトリの場所に移動(コピー)する必要があります。しかし、指定されたディレクトリが既にそのような場所の外にある場合は、あなたは大丈夫です。

Fileクラスは、File#createTempFile(String prefix, String suffix)を提供することによって、OS管理の一時ファイル記憶域の概念を抽象化するのに役立ちます。コードは適切なOS-tempディレクトリを知る必要がないようにします(Javaランタイムは君は)。このようなファイルは、永続的になるためにコピーアウトする必要があるOS管理の一時ディレクトリに作成されます。

また、一時ファイルの「一時的な」状態は、通常、システムの再起動時には生き残れないことが多い(通常、シャットダウンしても機能しないこともあります)。したがって、一時ファイルは、永続的なものです。再起動後も永続性が必要な場合は、最初に永続的な場所にtempsを作成するか、そこに移動(コピー)してください。

しかし、最初は「一時的な」ファイルはどのような形であるのでしょうか?

+0

私はアクティビティ全体でビットマップを共有できないため、(他のデータと共に)1つのファイルにそれらをダンプしました。 2番目のアクティビティの場合、このファイルは最初のアクティビティにのみデータを渡すため、一時的です。しかし、最初のアクティビティでは、この正確なファイルを別の場所に保存する必要があります。 – Distjubo

+1

事は、2番目のアクティビティはどこに配置するのか分からないので、それを一時ファイルに格納し、最初のアクティビティはどこに配置するかを決定します。 – Distjubo

関連する問題