2

Javaアプレットを使用して、Windows 7でポータブルデバイスとして表示されるデバイス( 「Windows CE」アプリケーションを含む)内のいくつかのファイルにアクセスしようとしています....

私のデバイスパスは次のようなものです

「コンピュータ\アタリのデバイス\myfile.txt」
今、同じアドレスを使用してそこからファイルにアクセスしようとしていますが、パスエラーまたはファイルが見つかりません。

同様に私が使用した

「\\.\アタリのデバイス\myfile.txt」
しかし、同じエラーが発生し、Javaアプレットを使用してポータブルデバイスにアクセスする方法を教えてください

接続されたデバイスに移動してファイルを右クリックし、そのプロパティを表示すると、その場所が次のように表示されます

場所: コンピューター\アタリのデバイス

また、このファイルを開くと、コンピューターの一時ファイルに自動的に配置されます。署名付きアプレットも使用しているため、ファイル アクセスが拒否されるという問題はありません。

私も使った

File.listRoots()
しかし、接続されているポータブル デバイスも一覧表示されません。Java アプレットを使用して、ポータブル デバイスにファイルを書き込む必要があります。

4

1 に答える 1

2

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/include-native-library-in-netbeans
于 2012-10-11T07:45:15.670 に答える