2016-04-15 48 views
2

DownloadManagerは、既存のファイルを上書きせずに新しいファイルを作成します。代わりにworld.mapの代わりにworld-1.mapを入力します。DownloadManagerに既存のファイルを上書きするよう伝える

新しい特権や何百行ものコードを追加しなくても、既存のファイルや回避策を上書きするように指示する方法はありますか?

+0

ファイルのダウンロードが完了すると、新しいファイルが作成されます(名前が同じ場合は番号を追加します)。ファイルが部分的にダウンロードされた場合、ファイルの終わりを再開します。それでもファイルを上書きしたい場合は、最初にファイル名を確認してから続行するロジックを作成します。 – Kathi

答えて

1

DownloadManagerでちょっとした作業をしましたが、再ダウンロードする前に毎回ファイルを削除したので、この動作は経験したことがありません。あなたはそれを試してみる必要がありそうでない場合

setDestinationInExternalFilesDir()

setDestinationInExternalPublicDir()

: は、明示的にこれらのいずれかの方法でパスを指定する場合でも、この動作が発生ありません。

それでもうまくいかない場合は、以前ダウンロードしたコンテンツを削除することができます。ダウンロードのIDをどこかに保存して削除する必要があります。この方法で:

downloadManager.remove(ids); 

その後、他のファイルをダウンロードします。

+0

私は 'setDestinationInExternalPublicDir()'を使い、その動作を経験します。古いファイルを削除するのは良い選択ではありません。なぜなら、ダウンロードが失敗したときに何もないからです。古いファイルは何も持っていない方が良いでしょう。しかし、私は新しいファイルをダウンロードする前に古いファイルの名前を変更することを考えています。 – hgoebl

関連する問題