我正在尝试访问设备中的某些文件(其中包含“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
在便携式设备中编写一些文件
答案 0 :(得分:2)
我在
上使用JMTP库找到了解决上述问题的方法http://code.google.com/p/jmtp/
这是我的代码
package jmtp;不要忘记添加jmtp.dll文件(提供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(); } }
{{1}}