1

問題は、ファイルを DDMS パースペクティブを介して data および /data/data フォルダーに配置し、そのファイルにアクセスしようとすると、FileNotFoundException が発生することです。コード:

                String path = Environment.getExternalStorageState()+"/analyzer_settings.xml";
                System.out.println(path);

                try {
                    Scanner in = new Scanner(new File(path));
                    while (in.hasNext()) {
                        System.out.println(in.nextLine());
                    }
                } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

印刷の例外:

07-11 17:10:02.470: I/System.out(13506): mounted/analyzer_settings.xml
07-11 17:10:02.500: W/System.err(13506): java.io.FileNotFoundException: /mounted/analyzer_settings.xml: open failed: ENOENT (No such file or directory)

私も試しました:

String path = Environment.getExternalStorageState()+"/data/analyzer_settings.xml";
or 
String path = Environment.getExternalStorageState()+"/data/data/analyzer_settings.xml";

私にとっては何もうまくいきませんでした。

4

2 に答える 2

4

使用する

String path = Environment.getExternalStorageDirectory().getAbsolutePath()
              +"analyzer_settings.xml";

それ以外の

 String path = Environment.getExternalStorageState()+"/analyzer_settings.xml";


編集: ドキュメントが言うように:

getExternalStorageDirectory () :

Android 外部ストレージ ディレクトリを取得します。このディレクトリは、ユーザーがコンピュータにマウントした場合、デバイスから削除された場合、またはその他の問題が発生した場合、現在アクセスできない可能性があります。getExternalStorageState() で現在の状態を確認できます。

getExternalStorageState() :

プライマリ「外部」ストレージ デバイスの現在の状態を取得します。

于 2012-07-11T13:19:23.953 に答える
1

このコーディングを試してください。

       File sdcard = Environment.getExternalStorageDirectory();

    File file = new File(sdcard,"billdump1.xml");//Don't use '/' symbols
于 2012-07-11T13:22:47.240 に答える