继续我以前的帖子,upload file with relative path我尝试使用
运行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'
问题出在哪里,以及如何解决?我可以观察到它正在向f_path添加mnt / sdcard。
答案 0 :(得分: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
祝你好运!!
答案 1 :(得分:1)
在您的网址变量上,仅使用相对路径:
url = "/download/XYZ.txt"
/mnt/sdcard
将来自您的Environment.getExternalStorageDirectory();
答案 2 :(得分:0)
你必须这样做:
File sdcard = Environment.getExternalStorageDirectory();
File file = new File(sdcard, "/download/XYZ.txt");
这将自动获取您的文件..
之后您可以按如下方式使用它:
InputStream fis = null;
fis = new BufferedInputStream(new FileInputStream(file.getAbsolutePath()));
这将完美地获取您文件的路径!!