Как получить список файлов с указанным расширением c в Xamarin Android? - PullRequest
0 голосов
/ 17 марта 2020

Мне нужно предложение получить список файлов PDF с внешнего хранилища на устройстве android

1 Ответ

0 голосов
/ 18 марта 2020

1.Вы можете просмотреть папку и отфильтровать PDF-файлы:

public void Search_Pdf_Dir(File dir)
    {
        string pdfPattern = ".pdf";

        File[] FileList = dir.ListFiles();

        if (FileList != null)
        {
            for (int i = 0; i < FileList.Length; i++)
            {

                if (FileList[i].IsDirectory)
                {
                    Search_Pdf_Dir(FileList[i]);
                }
                else
                {
                    if (FileList[i].Name.EndsWith(pdfPattern))
                    {
                        //here you have that file.

                    }
                }
            }
        }
    }

, затем вы можете позвонить как Search_Pdf_Dir(Android.OS.Environment.ExternalStorageDirectory);

2.use MediaStore - Uri для запроса всех типов файлы:

ContentResolver cr = ContentResolver;
Android.Net.Uri uri = MediaStore.Files.GetContentUri("external");

// every column, although that is huge waste, you probably need
// BaseColumns.DATA (the path) only.
string[] projection = null;
string selectionMimeType = MediaStore.Files.FileColumns.MediaType + "=?";
string mimeType = MimeTypeMap.Singleton.GetMimeTypeFromExtension("pdf");
string[] selectionArgsPdf = new string[] { mimeType };
string sortOrder = null;
var allPdfFiles = cr.Query(uri, projection, selectionMimeType, selectionArgsPdf, sortOrder);
while (allPdfFiles.MoveToNext())
    {
        int column_index = allPdfFiles.GetColumnIndexOrThrow(MediaStore.Images.Media.InterfaceConsts.Data);
        string filePath = allPdfFiles.GetString(column_index);//the pdf path
    }
...