1
    public void check4PDF(File dir) {
    String pdfPattern = ".pdf";

    File listFile[] = dir.listFiles();

    if (listFile != null) {
        for (int i = 0; i < listFile.length; i++) {

            if (listFile[i].isDirectory()) {
                check4PDF(listFile[i]);
            } else {
                if (listFile[i].getName().endsWith(pdfPattern)) {
                    FileDetails mFileDetails = new FileDetails();
                    mFileDetails.setmFilename(listFile[i].getName());
                    mFileDetails.setmPath(listFile[i].getAbsolutePath());
                    pdfDetails.add(mFileDetails);

                }
            }
        }
    }
}

このコードはネクサスで結果を出しません。

if (!Environment.MEDIA_MOUNTED.equals(storageState)
            && !Environment.MEDIA_MOUNTED_READ_ONLY.equals(storageState)) {
        Toast.makeText(getActivity(), "SD Card not found.",
                Toast.LENGTH_SHORT).show();
    } else {
        Toast.makeText(getActivity(),
                Environment.getExternalStorageDirectory() + "",
                Toast.LENGTH_SHORT).show();
        ScanSDCardTask temp = new ScanSDCardTask(
                Environment.getExternalStorageDirectory(), getActivity());
        temp.execute(".pdf");
    }

パスに問題があると思います助けてください。

4

1 に答える 1

1

この方法で検索します..検索ファイルよりも高速で効率的です..

private void checkForPdf(File file) {
    try {
        if (file.exists()) {
            File[] listFiles = file.listFiles(new FilenameFilter() {

                @Override
                public boolean accept(File dir, String filename) {
                    return filename.toLowerCase().endsWith(".pdf");
                }
            });
            for (File file2 : listFiles) {
                //here you will get all pdf files..
            }
        }
    } catch (Exception e) {
    }

}
于 2013-12-30T07:15:36.303 に答える