나는 여러 파일을 포함하고있는 SD 카드의 폴더가 있습니다. 이제 해당 파일의 이름을 가져와야합니다. 누구나 SD 카드에 저장된 파일 이름을 얻는 방법을 알 수 있습니까?안드로이드에서 sd 카드에 저장된 파일 이름을 얻는 방법
도움이 될 것입니다. 감사합니다.
나는 여러 파일을 포함하고있는 SD 카드의 폴더가 있습니다. 이제 해당 파일의 이름을 가져와야합니다. 누구나 SD 카드에 저장된 파일 이름을 얻는 방법을 알 수 있습니까?안드로이드에서 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);
}
}
당신이 다음이 코드를 사용 FOLDER의 특정 경로에서 모든 파일 및 폴더를 검색 할 경우, 나는 우리가 권한을 추가해야한다는 발견 안드로이드 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()'두 메소드의 소스 코드를 확인 했습니까? 그들 사이에는 약간의 차이가 있습니다. diff가 무엇인지 알고 흥미 롭습니다. –
@Martjin : 내부적으로'listFiles'는 list를 사용하여 파일 이름 목록을 만들고'File' 객체를 만듭니다. 그러나 OP가 파일 만 갖고 싶기 때문에'listFiles'를 사용하는 것이 더 좋았습니다. –