getAppHomePath()似乎在模拟器中抛出错误的路径?

时间:2016-06-29 09:59:20

标签: codenameone

我遇到了getAppHomePath()方法的问题,这个方法返回" file:// home /"在调试器中,然后我得到一个FileNotFoundException。

抛出异常的代码:

fileName = "100004_2016-06-29.jpg"
appHomePath = FileSystemStorage.getInstance().getAppHomePath();
img = Image.createImage(Storage.getInstance().createInputStream(appHomePath + fileName));

ExceptionMessage:

java.io.FileNotFoundException: C:\Users\xyz\.cn1\file___home_100004_2016-06-29.jpg (Das System kann die angegebene Datei nicht finden)

所以似乎它添加了这个前缀" file ___ home _"它破坏了Path,我肯定有一个文件" 100004_2016-06-29.jpg"存储在该路径下。

在该路径下创建该文件的代码段如下:

img = Image.createImage(FileSystemStorage.getInstance().openInputStream(filePath));
OutputStream os = Storage.getInstance().createOutputStream(newFileName);
ImageIO.getImageIO().save(img, os, ImageIO.FORMAT_JPEG, 1.0f);

ImageGallery返回filePath变量,因此它在%TEMP%。

无论如何存储文件是有效的,阅读确实不会。

我是否遗漏了某些内容,或者模拟器代码中是否存在错误?

2 个答案:

答案 0 :(得分:1)

问题是你混合使用https://www.amazon.com/Rails-Way-Addison-Wesley-Professional-Ruby/dp/0321944275这两个非常不同的类。不幸的是,模拟器将Storage映射到与映射FileSystemStorage大致相同的位置,这可能是我们需要修复以避免此类情况的原因。

您需要选择一个API并使用它。 ImageIOFileSystemStorage一起使用,因此您需要绝对文件。

答案 1 :(得分:0)

问题解决了,它不需要AppHomePath,fileName就足够了。

修理起来很简单,但有时它的细节......