2011-11-13 17 views
5

Potrzebuję przenieść plik z jednego katalogu do drugiego w systemie plików Android. Jak mogę programowo sprawdzić, czy te dwie ścieżki znajdują się w tym samym punkcie montowania?Jak sprawdzić, czy dwie ścieżki znajdują się w tym samym punkcie montowania?

Powodem, dla którego chcę to wiedzieć, jest to, że jeśli tak, musimy skopiować bity zamiast używać File.rename(newPath).

Przykłady gdy ścieżka jest w różnych punktach montowania:

  • użytkownik chce przejść do pliku z wewnętrznej pamięci zewnętrznej.

  • Użytkownik chce przenieść plik z/sdcard/files do/sdcard/external_sd/files w urządzeniu samsungdevice.

Odpowiedz

2

Jednym ze sposobów, aby określić, który system plików plik znajduje się na z poziomu aplikacji na Androida:

  • uzyskać kanoniczną ścieżkę do pliku przez wywołanie File.getCanonicalPath() na nim.

  • następnie uzyskać listę aktualnie zamontowanych systemów plików & ich ścieżki punkt instalacji z pliku/proc/mounts

  • i dowiedzieć się, jakie zamontować punkt ścieżka jest najbardziej kompletny mecz ciąg dla kanonicznej ścieżki pliku w pytaniu to powinno dać ci punkt montowania/system plików pliku.

Porównaj wyniki z dwóch plików.

5

Zadzwoń pod File.rename. Jeśli się powiedzie, są w tym samym punkcie montowania.

+2

To jeden sposób. Ale jeśli się nie uda - może to być spowodowane innymi przyczynami niż bycie w różnych punktach montowania. –

+2

Wątpię, że to ma znaczenie. Z jakiegoś powodu nie powiedzie się, będziesz chciał zrobić to samo - spróbuj zrobić kopię samodzielnie i zgłosić błąd tylko wtedy, gdy to się nie powiedzie. –

Powiązane problemy