0

Bluetooth経由で宛先デバイスのファイルを古いバージョンに置き換える必要があります。これには OBEX (FTP および OPP) プロファイルが必要であることはわかっています。しかし、古いバージョンを削除して、新しいバージョンのファイルを宛先ディレクトリ (Java コード) にコピーする方法がわかりません。

助けてください。

4

1 に答える 1

1

ファイルに対して操作を実行するには、まずファイルがあるディレクトリに移動する必要があります。たとえば、/root/directory/subdir/ に移動する必要がある場合は、setPath を 3 回呼び出す必要があります。

    setPath(""); // to get to /root/
    setPath("directory") // get to /root/directory/
    setPath("subdir") // get to root/directory/subdir/

以下に記述されているコードはすべて J2ME 用です。このメソッドを使用して、区切り記号付きのパスを設定します (例: /root/dir/)

    private void moveToDirectory(String dir) throws IOException {
        RE r = new RE("/"); // where RE is me.regexp.RE
        setDir("");
        String[] dirs = r.split(dir);
        for (int i = 1; i < dirs.length; i++) setDir(dirs[i]);
    }

ファイルを削除するには、そのファイルに対して PUT 操作を開いてから閉じるか、ClientSession で delete メソッドを使用する必要があります。

    public void delete() throws IOException {
        HeaderSet hs = cs.createHeaderSet(); // where cs is an opened ClientSession
        hs.setHeader(HeaderSet.NAME, file); // file - is a filename String, no slashes should be used
        cs.delete(hs);
    }

ファイルを置き換える必要がある場合は、おそらく delete メソッドを呼び出す必要はありません。OutputStream を開いて、新しいファイルを書き込むだけです。

    public OutputStream openOutputStream() throws IOException {
        HeaderSet hs = cs.createHeaderSet();
        hs.setHeader(HeaderSet.NAME, file);
        Operation op = cs.put(hs); // Operation should be global, so you can close it after you done
        return op.openOutputStream();
    }

ストリームの処理が終わったら、Operation を閉じることを忘れないでください。

于 2012-05-01T10:39:41.040 に答える