即使使用FileIO成功,也无法从getcachedir()中找到文件

时间:2015-05-15 22:48:21

标签: java android

我正在通过FTP下载文件并将其存储在本地并尝试获取文件的Uri。我使用.getCacheDir()和File.createTempFile()作为文件路径。 FTP.retrieveFile()返回true表示文件已下载。但是,readBitmap()过程在尝试读取位图时返回null。

outputFile = /data/data/my.package.name/cache/b924df6f-4c0f-40c6-9c88-47dc021a02dc52132684.jpg,手机或SD卡上不存在。我在另一个线程中读到它确实存储在/ sdcard / Android / data / yourapp / cache /中。我的应用程序(以包名称命名的文件夹)在该路径下没有文件夹,无论是在手机还是SD卡上。

所以我很困惑,如果FTP(org.apache.commons.net.ftp.FTP)返回true文件在哪里?

/data/data/my.package.name/cache/b924df6f-4c0f-40c6-9c88-47dc021a02dc52132684.jpg是否真的有路径?如果不是,怎样才能获得真正的路径,以便将其转换为Uri?

格雷格

OutputStream output;
String fileName = java.util.UUID.randomUUID().toString();
File outputDir = MainActivity.this.getCacheDir(); 
File outputFile = File.createTempFile(fileName, ".jpg", outputDir);
output = new BufferedOutputStream(new FileOutputStream(outputFile));

if (!mFtpClient.retrieveFile(d.ImageName, output)) {        
    Log.e("FTPDownload", String.valueOf(mFtpClient.getReplyCode()));
}                        
else {
    Bitmap imageBitmap;
    //readBitmap() returns null and throws an exception
    //I use readBitmap() when uploading to display the image before uploading
    //It works if there is a valid Uri passed in.
    imageBitmap = readBitmap(Uri.fromFile(outputFile));
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    imageBitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
    byte[] imageData = null;
    imageData = baos.toByteArray();

    d.ImageData = imageData;

    output.close();
}

0 个答案:

没有答案