Bluetooth経由で宛先デバイスのファイルを古いバージョンに置き換える必要があります。これには OBEX (FTP および OPP) プロファイルが必要であることはわかっています。しかし、古いバージョンを削除して、新しいバージョンのファイルを宛先ディレクトリ (Java コード) にコピーする方法がわかりません。
助けてください。
Bluetooth経由で宛先デバイスのファイルを古いバージョンに置き換える必要があります。これには OBEX (FTP および OPP) プロファイルが必要であることはわかっています。しかし、古いバージョンを削除して、新しいバージョンのファイルを宛先ディレクトリ (Java コード) にコピーする方法がわかりません。
助けてください。
ファイルに対して操作を実行するには、まずファイルがあるディレクトリに移動する必要があります。たとえば、/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 を閉じることを忘れないでください。