2011-11-13 26 views
5

アンドロイドファイルシステムのあるディレクトリから別のディレクトリにファイルを移動する必要があります。 2つのパスが同じマウントポイントにあるかどうかをプログラムで確認する方法はありますか?2つのパスが同じマウントポイントにあるかどうかをチェックする方法は?

私がこれを知りたいのは、もしそうであれば、File.rename(newPath)の代わりにビットをコピーする必要があるからです。

例パスが異なるマウントポイントである:

  • ユーザが外部記憶装置に内部からファイルを移動することを望みます。

  • ユーザーは、/ sdcard/filesから/ sdcard/external_sd/samsungdevice上のファイルを移動する必要があります。

答えて

2

一つの方法は、Androidアプリの中から常駐:

  • がそれに()File.getCanonicalPathを呼び出すことにより、ファイルの正規のパスを取得します。

  • はその後、現在マウントされているファイルシステムのリストを取得するの/ proc /マウント

  • とポイントパスは、問題のファイルの正規のパスのための最も完全な文字列一致でマウントしている見つけるから&そのマウントポイントのパスを、これはあなたにファイルのマウントポイント/ファイルシステムを与えるはずです。

2つのファイルの結果を比較します。

5

File.renameと呼ぶ。成功すれば、同じマウントポイントにいます。ファイルをファイルシステム・決定する

+2

これは1つの方法です。しかし、それが失敗すれば、それは別のマウントポイント上にある以外の理由があります。 –

+2

私はそのことを疑う。どのような理由で失敗したとしても、同じことをしたいと思うでしょう。自分でコピーを行い、失敗した場合のみエラーを報告してください。 –

関連する問題