2014-01-11 12 views
0

내가 작업중인 프로그램은 이동식 드라이브에 액세스해야합니다. 마운트 포인트가 동일하게 유지되어야하기 때문에 일반적으로 문제가되지 않습니다 (예 : 우분투에서 내 휴대 전화의 SD 카드는 /media/sebastian/GT-S5830/에 마운트됩니다.)하지만 Windows에는 드라이브 문자가 다를 수 있습니다. (동일 전화 : E:\하면, 카메라가 E:에 설치 동안의 연결 후에는 F:되었고 머물렀다.)드라이브 문자에서 파티션 이름 가져 오기

그래서 나는 드라이브 문자를 저장하지 않음으로써이 문제를 해결하기를 원하지만 파티션 이름.

예 : 설정시 경로 E:\DCIM\Camera\이 지정되었습니다. 이제 다음을 수행 할 :

  • 파티션의 이름 E:에 장착 가져
  • 장치를 액세스 할 때, 파티션의 드라이브 문자가 partname라는 이름의 해결 <partname>:\DCIM\Camera\
  • 같은 같은 특정 디렉토리에
  • 저장 경로
  • 콜론 뒤에 드라이브 문자와 경로 부분을 연결하여 경로를 작성하십시오.

Windows에서 마운트 지점을 지정하여 파티션 이름을 가져 오거나 Java에서 파티션 이름을 가져 오는 방법은 무엇입니까?

답변

0

파일 시스템에 대한 더 많은 정보를 얻으려면 FileSystemView을 탐색 할 수 있습니다. 기타 예제 here. 귀하의 원인에 대한

당신은 이동식 디스크에 핸들을 얻고 정보 뭔가 작업을 수행 할 수 있습니다 :

FileSystemView fsv = FileSystemView.getFileSystemView(); 
     File[] files = File.listRoots(); 

     File[] roots = fsv.getRoots(); 
     for (int i = 0; i < roots.length; i++) { 
      System.out.println("Root: " + roots[i]); 
     } 

     for (File fi : files) { 
      if (fsv.getSystemTypeDescription(fi).contains("Local Disk") 
        || fsv.getSystemTypeDescription(fi).contains(
          "Removable Disk")) { 
       System.out.println(fsv.getSystemDisplayName(fi)); 
      } 

     } 

출력 :

Root: C:\Users\popofibo\Desktop 
Local Disk (C:) 
Recovery (D:) 
Removable Disk (E:) 

당신은 윈도우를 확인 할 수 있습니다 필요한 경우 JNA를 사용하여 디스크의 볼륨 정보 - 자세한 내용 here.