1

バックグラウンド

次のファイルを取得して、アプリの内部ストレージに移動する必要があります。

mnt/sdcard/ダウンロード

以下を使用してファイルをコピーし、SD カードからファイルを削除することで、これを正常に達成できます。

writer = new BufferedWriter(new FileWriter(file));
writer.write(data);
writer.close();

大きなファイルをコピーしている間、2倍のスペースが必要です(私にはありません)。

質問

コピーと削除ではなく、ファイルを「移動」する (ディレクトリを変更する) ことは可能ですか?

その他の情報 私が見つけた問題を調べる:

public boolean renameTo (File newPath)

文書

両方のパスが同じマウント ポイントにあります。Android では、アプリケーションが内部ストレージと SD カードの間でコピーしようとすると、この制限にヒットする可能性が最も高くなります。 ここから引用

同じマウント ポイントで両方のパスを取得できるかどうかはわかりません。

4

2 に答える 2

2

非常に大きなファイルを扱っているように聞こえるので、ある種のプログレッシブ縮小操作/他のタイプの操作を検討するかもしれませんが、おそらく完全なコピーに十分なスペースがないことを検出できる場合に限ります。

于 2012-11-27T16:58:27.240 に答える
0

私は以前に反対のことを試みました(SDの内部、同じこと)、コピーしてから削除するプロセスだけが機能することがわかりました。ファイルが異なる物理ストレージ領域にあるため、単に「名前を変更」できないことは理にかなっていると思います(同じことが一部のAndroidデバイスの一部の「仮想」SDカードに当てはまるかどうかはわかりません)。それらが異なるストレージスペースにある場合、ファイルヘッダーのポインターを単に交換することはできません。

于 2012-11-27T16:49:07.383 に答える