1

继续我之前的帖子,上传带有我尝试运行的相对路径的文件

url = '/mnt/sdcard/download/XYZ.txt';
File dir = Environment.getExternalStorageDirectory();
File f_path = new File(dir, url);
InputStream  fis = null;
fis = new BufferedInputStream(new FileInputStream(f_path));

但是当我从我的 Android 设备上运行它时会抛出错误。

java.io.FileNotFoundException: /mnt/sdcard/mnt/sdcard/download/XYZ.txt (No such file or directory)

f_path 的输出是 '/mnt/sdcard/download/XYZ.txt'

问题出在哪里,如何解决?我可以观察到它正在将 mnt/sdcard 添加到 f_path。

4

3 回答 3

4

尝试使用该代码。

url = '/mnt/sdcard/download/XYZ.txt';
File f_path = new File(url);
InputStream  fis = null;
fis = new BufferedInputStream(new FileInputStream(f_path));

例外来了,因为 Environment.getExternalStorageDirectory();它自己给等于

/mnt/sdcard

祝你好运 !!

于 2012-10-20T07:52:27.273 回答
1

在您的 url 变量上,仅使用相对路径:

url = "/download/XYZ.txt"

/mnt/sdcard意志来自你的Environment.getExternalStorageDirectory();

于 2012-10-20T06:39:04.083 回答
0

你必须这样做:

 File sdcard = Environment.getExternalStorageDirectory();
 File file = new File(sdcard, "/download/XYZ.txt");

这将自动获取您的文件..

之后,您可以按如下方式使用它:

InputStream  fis = null;
fis = new BufferedInputStream(new FileInputStream(file.getAbsolutePath()));

这将完美地获得您的文件路径!

于 2012-10-20T06:47:41.017 回答