使用java获取便携式设备

时间:2012-10-08 04:54:55

标签: java applet device mobile-devices drive-letter

我正在尝试访问设备中的某些文件(其中包含“windows CE”应用程序),在Windows 7中使用java applet显示为便携设备。 ..

我的设备路径类似于

 "Computer\Attari's Device\myfile.txt" 
现在我正在尝试使用相同的地址从中访问文件,但它会出现路径错误或找不到文件。

同样我使用了

"\\.\Attari's Device\myfile.txt"
,但导致同样的错误告诉我如何使用java applet访问便携式设备

当我导航到已连接的设备并右键单击文件并查看其属性时,它会将其显示为

Location:  Computer\Attari's Device

此外,当我打开此文件时,它会自动放入我计算机的 temp 文件中。 我也使用Signed Applet,因此没有文件访问被拒绝的问题

我还使用了

File.listRoots()
,但它也没有列出附加的便携式设备 我必须使用java applet

在便携式设备中编写一些文件

1 个答案:

答案 0 :(得分:2)

我在

上使用JMTP库找到了解决上述问题的方法
http://code.google.com/p/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下载)作为本地库以获取更多信息,请参阅我的回答

{{1}}