0

我需要通过蓝牙在目标设备中用旧版本的文件替换文件。我知道为此需要使用 OBEX(FTP 和 OPP)配置文件。但我不知道如何删除旧版本并在目标目录(java代码)中复制新版本的文件。

你能帮我吗?

4

1 回答 1

1

要对文件进行操作,首先要切换到文件所在的目录。例如,如果你需要访问 /root/directory/subdir/ 你应该调用 setPath 三次

    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();
    }

完成流后记得关闭操作。

于 2012-05-01T10:39:41.040 回答