0

파일 목록 (파일의 절대 경로)을 저장하고 있습니다. 내부 저장소 일 수도 있고 외부 저장소 일 수도 있습니다.mountpoint가 있는지 확인하지만 파일이 없습니다.

해당 파일을 클라우드 (예 : Google 드라이브)와 동기화하는 중 로컬 (File.exists())에 파일이 있는지 여부를 확인하고 클라우드에서 파일을 삭제하지 않는지 확인합니다.

하지만 외부 저장소가 마운트되어 있지 않으면 클라우드에서 파일을 삭제할 수 있습니다. 하지만, 그렇게해서는 안됩니다. 마운트 지점을 사용할 수없는 경우 파일을 확인하지 않아야합니다. 어떻게 그 상태를 확인할 수 있습니까? 어떻게 스토리지가 장착 된 경우에만 다음 확인 확인할 수 있습니다 /storage/4XXX-1234/Android/media/com.example/Documents/external.txt

:

  • 내부 : /storage/emulated/0/internal.txt
  • 외부 예를 들어

    은 내부 & 외부 저장 장치의 파일은 뭔가처럼 보인다 파일 존재를 위해?

답변

0

파일이 마운트 된 경로에 있는지 없는지 찾았습니다.

File localFile = new File("/storage/4XXX-1234/Android/media/com.example/Documents/external.txt"); 

if(Environment.getExternalStorageState(new File(localFile.getAbsolutePath())) 
     .equalsIgnoreCase("mounted"))) { 
    Log.d(TAG,"File is on the mounted path"); 
} 
0

디렉토리가 존재하는지 확인하십시오.

예를 들어 사용하기 전에 /storage/4XXX-1234 디렉토리가 있는지 먼저 확인하십시오.

사용하기 전에 /storage/4XXX-1234/Android/media/com.example/Documents 디렉토리가 존재하는지 확인할 수도 있습니다.

String path = "/storage/4XXX-1234/Android/media/com.example/Documents/external.txt"; 

File file = new File (path); 

if(!file.getParentFile().exists()) 
    return; // no dir. Not mounted 
+0

확인해야 할 경로가 혼란 스럽습니까? 얼마나? 다른 장치는 다른 저장 경로를 갖습니다. '/ storage' 또는'/ storage/4XXX-1234 /'와 같이. – kirtan403

+0

누군가 "Documents"디렉토리를 삭제할 수 있지만 스토리지가 마운트되었습니다. 그러면 시나리오가 실패합니다. – kirtan403

+0

파일의 디렉토리 경로입니다! /storage/4XXX-1234/Android/media/com.example/Documents/external.txt와 같습니다. – greenapps