繁体   English   中英

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

[英]How to use writeFromExistingFile(File,boolean) method of Dropbox SYNC API?

我正在使用writeFromExistingFile(File,boolean)方法从SD CARD文件写入DbxFile,但是它不起作用,并出现了Cross link错误,提示它无法从SDCARD写入DbxFileSystem缓存。 谁能提供正确使用此方法的详细信息? 也可以因为不想使用DataStore API而将SD卡中的.db文件复制到DbxFile系统中吗? 我在编写时遇到的错误是-E / libDropboxSync.so(ERR)(11250):DROPBOX_ERROR_SYSTEM:file.cpp:737:将/storage/emulated/0/sync_sdk.txt移动到缓存:跨设备链接

该消息表示在调用named()( http://linux.die.net/man/3/rename )之后出现errno == EXDEV。 这似乎表明源文件是一个链接,无法使该文件跨卷使用(例如,在SD卡和内部存储之间)。 是这样吗? 以前有一个检查会拒绝符号链接,但是这可能是一个硬链接。 否则文档可能只是误导,而这可能只是在卷之间移动文件的问题。

通常,由于应缓存具有对文件的唯一所有权,因此使用ShouldSteal选项将链接移至API缓存会引起问题。 您可能应该设置shouldSteal = false,这将导致DbxFile代替您的输入文件进行复制(如果需要,可以将其删除)。 只要输入是可读的,无论输入是链接还是输入在哪里,该方法都应该起作用。

我已经成功使用以下方法将SD卡中的image(jpg)映射到Dropbox:

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

用您的信息替换<>中的内容

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM