如何使用 Dropbox SYNC API 的 writeFromExistingFile(File,boolean)



我正在使用writeFromExistingFile(File,boolean)方法从SD CARD文件写入DbxFile。但它不起作用,并给出交叉链接错误,提到它无法从 SDCARD 写入 Dbx文件系统缓存。任何人都可以提供正确使用此方法的详细信息吗?我是否可以.db文件从 SDcard 复制到 DbxFile 系统,因为我不想使用数据存储 API?我在写作时遇到的错误是 - E/libDropboxSync.so(ERR)(11250):DROPBOX_ERROR_SYSTEM:file.cpp:737:将/storage/emulated/0/sync_sdk.txt移动到缓存:跨设备链接

该消息指示errno==EXDEV在调用rename()(http://linux.die.net/man/3/rename)后。 这似乎表明源文件是一个链接,不能跨卷工作(例如,在SD卡和内部存储之间)。 这里的情况是这样吗? 有一个预先检查会拒绝符号链接,但它可能是硬链接。 或者文档可能只是误导,这可能只是在卷之间移动文件的问题。

通常,使用 shouldSteal 选项将链接移动到 API 缓存中会导致问题,因为缓存希望对文件具有唯一的所有权。 您可能应该设置 shouldSteal=false,这将导致 DbxFile 改为复制输入文件(之后您可以根据需要将其删除)。 无论输入是链接还是输入在哪里,只要它是可读的,这都应该有效。

我已经成功地使用以下命令从我的SD卡到Dropbox进行了处理和图像(jpg):

DbxFileSystem dbxFiles = DbxFileSystem.forAccount(accountManager.getLinkedAccount());
    //Get the Source
File pictureFile = new File("/sdcard/<Your SD Path>/<Your SD File>");
    //Tell it were you want it
DbxFile bitMap = dbxFiles.create(new DbxPath("<Dbx Path>/<Dbx File>"));
    //write it there
bitMap.writeFromExistingFile(pictureFile, false);

将<>中的内容替换为您的信息

最新更新