3

Environment.getExternalStorageDirectory() で SD カードからすべてのファイル リストを取得しようとしていますが、ハードウェア ストレージからリストを取得します。ハードコーディングしてみましたが、結果は同じです。何がこれを引き起こしているのでしょうか?

私のコード

  String path = Environment.getExternalStorageDirectory().toString()+"/";
     Log.d("Files", "Path: " + path);
     File f = new File(path);        
     File file[] = f.listFiles();
     Log.d("Files", "Size: "+ file.length);
     for (int i=0; i < file.length; i++)
     {
         Log.d("Files", "FileName:" + file[i].getName());
     }

戻る

Path: /mnt/sdcard/
 Size: 21
FileName:LOST.DIR
 FileName:.android_secure
 FileName:Music
 FileName:Podcasts

しかし、SDカードにPodcastなどはありません。

半分の答え: Environment.getExternalStorageDirectory() は、場合によってはメモリ ストレージ内を取得します。String path = "/mnt/external_sd/"; を試してみると それからその仕事。しかし、他のデバイスのストレージは他のディレクトリにあります。

4

1 に答える 1

0

このコードを試して、

File filepath = Environment.getExternalStorageDirectory();

            File dir = new File(filepath.getAbsolutePath()
                    + "/Save PIP/");
            dir.mkdirs();


            File file = new File(dir, System.currentTimeMillis() + ".jpg");


           // Utils.showAlert("Image Saved to SD Card", "PIP Effect", "Ok", FrameActivity.this);

            if (file.exists()) file.delete();
            try {

                output = new FileOutputStream(file);
                bitmap_final.compress(Bitmap.CompressFormat.PNG, 100, output);
                output.flush();
                output.close();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

お役に立てれば幸いです。

于 2016-04-18T04:20:41.777 に答える