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 に答える