2010-03-20 5 views
6

저는 실제로 Windows/Java 질문이 있습니다. Java를 통해 액세스하려는 플러그인 장치가 있습니다. 일반적으로 예를 들어 USB 스틱을 드라이브 문자를 통해 ...하지만이 태블릿은 Windows에서 "휴대용 장치"로 표시됩니다 ... 즉, 경로가 "Computer \ Archos 5S"와 같으며 드라이브 문자가 없음을 의미합니다.Windows에서 휴대용 장치 경로

Java를 통해이 장치의 파일에 액세스하고 싶지만 정확한 경로를 찾을 수 없습니다. 비슷한 질문이 있지만 생산적인 답변이 없습니다. 또는 Java를 통해이 장치에 액세스하는 또 다른 방법이 있습니까?


사실이 문제를 해결하지 못했습니다. 아직 자바를 통해 이러한 장치에 액세스 할 수 없습니다.

현재 자바에서 Windows ShellFolder에 액세스하려고합니다. Shellfolder like : "Shell ::: {35786D3C-B075-49b9-88DD-029876E11C01}"

Java로 가능합니까? 최근에 sun.awt 클래스 "ShellFolder"를 발견했습니다 ... 원하는 기능입니까? 당신의 도움에 대한

감사 Ripei * 괜찬아 시스템 (드라이브 포함) 모든 장치가 별칭 드라이브 문자를 사용하기 때문에, 이것은 일반적으로 사용자로부터 숨겨져 공통 루트의 일부 경로가 같이

+0

* 컴퓨터를 "MSC"모드로 연결했으나 컴퓨터에서 볼 수 없습니다. * 이 모드는 MSC (Mass Storage Class)입니다. 플러그가 꽂혀있는 컴퓨터를 인식합니다 외부 하드 드라이브로 ARCHOS 인터넷 타블렛에. 고급 Windows 사용자의 경우 Windows 컴퓨터에서 Ext3 유형 파티션을 외장 하드 드라이브로 마운트 할 수 있도록 인터넷에서 ARCHOS 기술 지원 팀이 지원하지 않는 위험 부담으로 사용하십시오. http://wiki.archosfans.com/index.php?title=Archos_FAQ – ecle

+0

기타 ... * USB 연결 모드에서 MSC 및 MTP 옵션이 나를 위해 무엇을합니까? * 이들은 어떻게 연결되는지에 대한 프로토콜입니다 컴퓨터. MSC (Mass Storage Class)는 가장 일반적인 USB 연결 방법입니다. MTP (Media Transport Protocol)는 일반 파일 및 Windows Media Player 파일을위한 지능형 전송 시스템입니다. Windows를 사용하는 경우 MTP 모드로 연결해야합니다.Linux를 사용하는 경우 MSC 모드로 연결해야합니다. – ecle

답변

2

이 기본 경로에,하지만 당신은 내 컴퓨터의 D에 예를 들어 "\\.\"

와 경로를 앞에 붙여 전체 장치 경로를 사용할 수 있습니다 "\Device\HarddiskVolume1"로 변환하고 CreateFile이에 "\\.\HarddiskVolume1"를 전달하여 액세스 할 수 있습니다.

따라서 기기의 경로는 아마도 "\\.\Archos 5s" 일 것입니다.

+0

감사합니다 ... 내 문제가 해결되지 않았지만 올바른 방법 인 것 같습니다. "\\. \ - Paramter"를 통해 드라이브 나 "Archos 5S"에 액세스 할 수 없습니다.하지만이 링크를 찾았습니다 : http://docs.plt-scheme.org/reference/windowspaths.html 그런 다음 "\\? \ C :"를 통해 드라이브에 액세스하려고 시도했지만 작동하지 않지만 "\\? \ Archos 5S"에서 작동하지 않습니다. 이유가 있습니까? 감사합니다. 사전에 ripei – Ripei

+0

드라이브 문자가 아닐지라도 장치가 이미 앨리어스를 가지고 있을지도 모르는'GetLogicalDriveStrings' 및'QueryDosDevice'를 사용해보십시오 –

+0

모든 장치를 열거하는 예제를 보려면이 간단한 C 프로그램을보십시오 http : // /pastebin.com/Y3pGu5hS –

0

언제든지 Windows 모바일 개발자 Powertoys (http://www.microsoft.com/download/en/details.aspx?id=10601)를 다운로드하여 설치하고 명령 줄 유틸리티를 사용하여 장치에서 복사 할 수 있습니다 cecopy는 모든 프로그래밍 언어에서 실행할 수 있습니다. 이 다른 옵션도있다,하지만 대부분 여기에

https://code.google.com/p/jmtp/에 닷넷

4

JMTP 라이브러리를 사용하여 위의 문제에 대한 해결책을 대상 것은

package jmtp; 

import be.derycke.pieter.com.COMException; 
import be.derycke.pieter.com.Guid; 
import java.io.*; 
import java.math.BigInteger; 
import jmtp.PortableDevice; 
import jmtp.*; 

public class Jmtp { 

    public static void main(String[] args) { 
     PortableDeviceManager manager = new PortableDeviceManager(); 
     PortableDevice device = manager.getDevices()[0]; 
     // Connect to my mp3-player 
     device.open(); 

     System.out.println(device.getModel()); 

     System.out.println("---------------"); 

     // Iterate over deviceObjects 
     for (PortableDeviceObject object : device.getRootObjects()) { 
      // If the object is a storage object 
      if (object instanceof PortableDeviceStorageObject) { 
       PortableDeviceStorageObject storage = (PortableDeviceStorageObject) object; 

       for (PortableDeviceObject o2 : storage.getChildObjects()) { 
//      
//      BigInteger bigInteger1 = new BigInteger("123456789"); 
//      File file = new File("c:/JavaAppletSigningGuide.pdf"); 
//      try { 
//       storage.addAudioObject(file, "jj", "jj", bigInteger1); 
//      } catch (Exception e) { 
//       //System.out.println("Exception e = " + e); 
//      } 
//      

        System.out.println(o2.getOriginalFileName()); 
       } 
      } 
     } 

     manager.getDevices()[0].close(); 

    } 
} 

이 jmtp.dll을 추가 잊지 마세요 내 코드입니다 파일 (jmtp 다운로드와 함께 제공됨)을 기본 라이브러리로 사용합니다. 자세한 내용은 Including Native Library in Netbeans에 대한 내 대답을 참조하십시오.

관련 문제