Android_遍历SD卡所有文件

遍历代码如下:

   

private static String TAG = "MainActivity";

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
        //返回一个SD的文件
		File path = Environment.getExternalStorageDirectory();
		System.out.println(path.toString());
		filePath(path);
	}

	//遍历SDcard的所有文件.
	public void filePath(File file) {
		if (file != null && file.exists() && file.isDirectory()) {
			File[] files = file.listFiles();
			for (File file2 : files) {
				if (file2.listFiles() == null) {
					String str = "文件名称:" + file2.getName() + " 路径:"+ file2.getPath();
					System.out.println(str);
				}else
					 filePath(file2);
			}
		} else
			System.out.println("文件不存在......");
	}

调试:

      1.使用logcat  过滤System.out标签

      


  效果如下:

     

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 Android 代码示例,用于遍 SD 目录中的所有图片文件并按来源软件进行分类: ```java public class ImageScanner { private static final String[] IMAGE_EXTENSIONS = {"jpg", "jpeg", "png", "gif", "bmp"}; public static List<ImageFile> findAllImages(Context context) { List<ImageFile> imageFiles = new ArrayList<>(); String[] projection = {MediaStore.Images.Media.DATA, MediaStore.Images.Media.DISPLAY_NAME, MediaStore.Images.Media.DATE_ADDED, MediaStore.Images.Media.SIZE, MediaStore.Images.Media.BUCKET_DISPLAY_NAME}; Cursor cursor = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, MediaStore.Images.Media.DATE_ADDED); if (cursor != null) { while (cursor.moveToNext()) { String filePath = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA)); String fileName = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DISPLAY_NAME)); long fileSize = cursor.getLong(cursor.getColumnIndex(MediaStore.Images.Media.SIZE)); String folderName = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.BUCKET_DISPLAY_NAME)); long dateAdded = cursor.getLong(cursor.getColumnIndex(MediaStore.Images.Media.DATE_ADDED)); if (isImageFile(filePath)) { ImageFile imageFile = new ImageFile(filePath, fileName, fileSize, folderName, dateAdded); imageFiles.add(imageFile); } } cursor.close(); } return imageFiles; } private static boolean isImageFile(String filePath) { for (String extension : IMAGE_EXTENSIONS) { if (filePath.endsWith("." + extension)) { return true; } } return false; } } ``` 这个类实现了 `findAllImages()` 方法,它使用 `MediaStore` API 来查找所有图片文件并返回一个包含它们的列表。方法中使用了 `Cursor` 类从 `MediaStore` 中检索图像信息,然后将每个符合条件的文件都添加到 `ImageFile` 对象中,并添加到返回的列表中。 `ImageFile` 类是一个简单的 Java 类,用于保存图片文件的信息: ```java public class ImageFile { private String path; private String name; private long size; private String folderName; private long dateAdded; public ImageFile(String path, String name, long size, String folderName, long dateAdded) { this.path = path; this.name = name; this.size = size; this.folderName = folderName; this.dateAdded = dateAdded; } public String getPath() { return path; } public String getName() { return name; } public long getSize() { return size; } public String getFolderName() { return folderName; } public long getDateAdded() { return dateAdded; } } ``` 你可以在 `findAllImages()` 方法中添加其他代码来根据来源软件对图片进行分类,例如检查每个图片的 Exif 数据并根据摄像头应用程序进行分类。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值