我需要通过蓝牙在目标设备中用旧版本的文件替换文件。我知道为此需要使用 OBEX(FTP 和 OPP)配置文件。但我不知道如何删除旧版本并在目标目录(java代码)中复制新版本的文件。
你能帮我吗?
我需要通过蓝牙在目标设备中用旧版本的文件替换文件。我知道为此需要使用 OBEX(FTP 和 OPP)配置文件。但我不知道如何删除旧版本并在目标目录(java代码)中复制新版本的文件。
你能帮我吗?
要对文件进行操作,首先要切换到文件所在的目录。例如,如果你需要访问 /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();
}
完成流后记得关闭操作。