Android获取指定目录下的文件代码

  1.  // 从sd卡获取图片资源 
  2. private List<String> getImagePathFromSD() { 
  3.  
  4.  // 图片列表 
  5.  List<String> picList = new ArrayList<String>(); 
  6.   
  7.   
  8.  // 得到sd卡内路径 
  9.   String imagePath = 
  10.   Environment.getExternalStorageDirectory().toString() 
  11.   + "/image"
  12.  
  13.  // 得到该路径文件夹下所有的文件 
  14.   File mfile = new File(imagePath); 
  15.   File[] files = mfile.listFiles(); 
  16.  
  17.  // 将所有的文件存入ArrayList中,并过滤所有图片格式的文件 
  18.  for (int i = 0; i < files.length; i++) { 
  19.   File file = files[i]; 
  20.   if (checkIsImageFile(file.getPath())) { 
  21.    picList.add(file.getPath()); 
  22.   } 
  23.  
  24.  } 
  25.  
  26.  // 返回得到的图片列表 
  27.  return picList; 
  28.  
  29.  
  30. // 检查扩展名,得到图片格式的文件 
  31. private boolean checkIsImageFile(String fName) { 
  32.  boolean isImageFile = false
  33.  
  34.  // 获取扩展名 
  35.  String FileEnd = fName.substring(fName.lastIndexOf(".") + 1
  36.    fName.length()).toLowerCase(); 
  37.  if (FileEnd.equals("jpg") || FileEnd.equals("gif"
  38.    || FileEnd.equals("png") || FileEnd.equals("jpeg"
  39.    || FileEnd.equals("bmp")) { 
  40.   isImageFile = true
  41.  } else { 
  42.   isImageFile = false
  43.  } 
  44.  
  45.  return isImageFile; 
  46.  
  47. }  

转载于:https://my.oschina.net/yuanxulong/blog/371174

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,以下是使用 MediaStore 获取下载目录文件的示例代码: ``` import android.database.Cursor; import android.net.Uri; import android.provider.MediaStore; // 在 Activity 或 Fragment 中 // 定义要访问的媒体文件的 Uri Uri uri = MediaStore.Downloads.EXTERNAL_CONTENT_URI; // 创建要查询数据的 projection,即列名数组 String[] projection = { MediaStore.Downloads._ID, MediaStore.Downloads.DISPLAY_NAME, MediaStore.Downloads.MIME_TYPE, MediaStore.Downloads.SIZE }; // 创建 Cursor 查询数据 Cursor cursor = getContentResolver().query(uri, projection, null, null, null); // 循环读取数据 while (cursor.moveToNext()) { // 获取每一行的数据 long id = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Downloads._ID)); String name = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Downloads.DISPLAY_NAME)); String mimeType = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Downloads.MIME_TYPE)); long size = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Downloads.SIZE)); // 在此处处理每一行的数据 ... } // 关闭 Cursor cursor.close(); ``` 上面的代码获取下载目录中的所有文件的基本信息,包括文件 ID、文件名、MIME 类型和大小。你可以根据自己的需要更改 projection 中的列名,以获取其他信息。 希望这些信息对你有帮助! ### 回答2: 在MAUI中使用MediaStore获取下载目录文件代码可以按照以下步骤实现: 1. 首先,在代码中添加必要的命名空间引用: ```csharp using Android.Provider; using Android.Net; ``` 2. 接着,可以在合适的位置定义获取下载目录文件的方法,比如可以在页面初始化时调用: ```csharp private void GetDownloadedFiles() { // 查询下载的文件 var downloadUri = MediaStore.Downloads.ExternalContentUri; var projection = new string[] { MediaStore.Downloads.InterfaceConsts.Id, MediaStore.Downloads.InterfaceConsts.DisplayName, MediaStore.Downloads.InterfaceConsts.Data }; var cursor = ContentResolver.Query(downloadUri, projection, null, null, null); if (cursor != null) { while (cursor.MoveToNext()) { var id = cursor.GetLong(cursor.GetColumnIndexOrThrow(MediaStore.Downloads.InterfaceConsts.Id)); var displayName = cursor.GetString(cursor.GetColumnIndexOrThrow(MediaStore.Downloads.InterfaceConsts.DisplayName)); var filePath = cursor.GetString(cursor.GetColumnIndexOrThrow(MediaStore.Downloads.InterfaceConsts.Data)); // 可以在此处对获取到的文件信息进行操作,比如输出到控制台或添加到集合中 Console.WriteLine($"ID: {id}, Display Name: {displayName}, File Path: {filePath}"); } cursor.Close(); } else { // 处理获取不到数据的情况 Console.WriteLine("Failed to query downloaded files."); } } ``` 以上代码中,我们首先定义了查询下载目录文件的相关信息,包括文件ID、文件名和文件路径等。然后,通过ContentResolver对象的Query方法执行查询操作,将查询结果保存在Cursor对象中。接着,我们遍历Cursor对象,获取每个文件的相关信息。在实际应用中,你可以根据需要对获取到的文件信息进行进一步的操作,比如输出到控制台或将文件信息添加到集合中。 需要注意的是,以上代码中未包含相关的异常处理,因此在实际开发中可以根据需要添加适当的异常处理代码,以确保程序的健壮性和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值