私はいくつかのファイルを含むsdカード内のフォルダを持っています。 今、私はそのファイルの名前を取得する必要があります。 誰でもどのようにsdカードに保存されているファイル名を取得する任意のアイデアを持っていることができますか?androidのsdカードに保存されているファイル名を取得する方法
助けに感謝します。 ありがとうございました。
私はいくつかのファイルを含むsdカード内のフォルダを持っています。 今、私はそのファイルの名前を取得する必要があります。 誰でもどのようにsdカードに保存されているファイル名を取得する任意のアイデアを持っていることができますか?androidのsdカードに保存されているファイル名を取得する方法
助けに感謝します。 ありがとうございました。
Environment.getExternalStorageDirectory
は、SDCARDに対応するFile
を提供します。次に、File
メソッドを使用するだけです。
File sdCardRoot = Environment.getExternalStorageDirectory();
File yourDir = new File(sdCardRoot, "yourpath");
for (File f : yourDir.listFiles()) {
if (f.isFile())
String name = f.getName();
// make something with the name
}
アドバイスの少し注:上記のキットカットとから、これはREAD_EXTERNAL_STORAGE
許可を必要とするようなものでなければなりません
。
/**
* Return list of files from path. <FileName, FilePath>
*
* @param path - The path to directory with images
* @return Files name and path all files in a directory, that have ext = "jpeg", "jpg","png", "bmp", "gif"
*/
private List<String> getListOfFiles(String path) {
File files = new File(path);
FileFilter filter = new FileFilter() {
private final List<String> exts = Arrays.asList("jpeg", "jpg",
"png", "bmp", "gif");
@Override
public boolean accept(File pathname) {
String ext;
String path = pathname.getPath();
ext = path.substring(path.lastIndexOf(".") + 1);
return exts.contains(ext);
}
};
final File [] filesFound = files.listFiles(filter);
List<String> list = new ArrayList<String>();
if (filesFound != null && filesFound.length > 0) {
for (File file : filesFound) {
list.add(file.getName());
}
}
return list;
}
これは、フォルダ内の画像の一覧を表示します。すべてのファイルを取得するようにコードを変更することができます。
ArrayList<String>nameList = new ArrayList<String>();
File yourDir = new File(Environment.getExternalStorageDirectory(), "/myFolder");
for (File f : yourDir.listFiles())
{
if (f.isFile())
{
nameList.add(f.getName);
}
}
あなたは、このコードを使用して、フォルダの特定のパスからすべてのファイルとフォルダを検索したい場合は、私たちが権限を追加必要があることを発見アンドロイド5.0ロリポップであなたに
String path="/mnt/sdcard/dcim"; //lets its your path to a FOLDER
String root_sd = Environment.getExternalStorageDirectory().toString();
File file = new File(path) ;
File list[] = file.listFiles();
for(File f:list)
{
filename.add(f.getName());//add new files name in the list
}
を助けますマニフェストへ:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
もしそうでなければ、sdcardにファイルが見つかりませんでした。私はこれを見つけるために1時間かかる!
よろしくお願いいたします。 – sajjoo
'list()'と 'listFiles()'の2つのメソッドのソースコードを確認しましたか?それらの間には少し違いがあります。どのような違いがあるのか知ることは興味深い。 –
@Martjin:内部的に、 'listFiles'はlistを使用してファイル名のリストを作成し、' File'オブジェクトを作成します。しかし、OPはファイルだけを持っていたので、私は 'listFiles'を使うことを好みました。 –