【问题标题】:Getting Portable Devices using java使用 java 获取便携式设备
【发布时间】:2012-10-08 04:54:54
【问题描述】:

我正在尝试使用 java 小程序访问在 Windows 7 中显示为 portable device 的设备(其中包含 "windows CE" 应用程序)中的某些文件。 ..

我的设备路径是这样的

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

我也用过

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

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

位置:计算机\Attari 的设备

此外,当我打开此文件时,它会自动放入我计算机的 temp 文件中。 我也在使用签名小程序,所以不存在文件访问被拒绝的问题

我也用过

File.listRoots()
但它也没有列出附加的便携式设备 我必须使用 java applet 在便携式设备中编写一些文件

【问题讨论】:

  • 当您导航到设备并右键单击文本文件以显示属性时,路径是如何列出的?将其复制/粘贴为问题的编辑。
  • @AndrewThompson 它现在显示“位置:计算机\Attari 的设备”,当我使用“运行”界面使用上面的路径访问该设备时,它说找不到文件:(Java 代码也有问题,请参阅我的也编辑过问题
  • 不,无论您从哪里获得这些信息,我都不是这个意思。照我说的做,导航到文件,右键单击(这是 Windows,对吗?)调出 文本文件的属性并复制/粘贴 Location: 字段(它看起来不可选,但确实如此)。
  • @AndrewThompson 当我在 Windows 7 中导航到已连接设备中的文件并右键单击文件并查看它的属性然后它显示它的位置为位置:计算机\Attari 的设备也当我将此位置粘贴到Explorer i 成功导航到文件。但这在 Run 命令和我的 java applet 代码中不起作用

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


【解决方案1】:

我在

上使用 JMTP 库找到了上述问题的解决方案
http://code.google.com/p/jmtp/

这是我的代码

打包 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 下载提供)添加为本机库以获取更多信息,请参阅我在 上的回答
http://stackoverflow.com/questions/12798530/includes-native-library-in-netbeans

【讨论】:

  • 你有读文件的例子吗?因为它只返回文件名
  • @DineshPhalwadiya 取消评论我上面的评论部分并根据您的要求进行更改
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-19
  • 2015-12-09
  • 1970-01-01
  • 2011-01-29
  • 2011-09-03
  • 2013-09-03
  • 1970-01-01
相关资源
最近更新 更多