c#如何获取某目录下的几种格式的图片文件。Directory.GetFiles

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#如何获取某目录下的几种格式的图片文件。Directory.GetFiles相关的知识,希望对你有一定的参考价值。

string dir=@"C:\3";
string []pic=Directory.GetFiles(dir, "*.jpg")

这样获取了 jpg格式文件的全路径。我想的是在获取jpg文件的同时,其它的imp、png文件也能获取到。
怎么写呢。
如果是写多个数组,每个数组获取一种图片格式。那样的话,顺序不好处理吧。我要在picturebox里显示出来,总不能先显示jpg的,完了再显示png格式的。

参考技术A string []pic=Directory.GetFiles(dir).Where(x=>x.EndsWith(".jpg",StringComparison.OrdinalIgnoreCase)|x.EndsWith(".bmp",StringComparison.OrdinalIgnoreCase)).ToArray();本回答被提问者和网友采纳 参考技术B 楼下方法试试吧,一般图片还是放在一个文件夹里比较好,比如image文件夹,想获取所有文件全路径直接string dir=@"C:\3 \image";
string []pic=Directory.GetFiles(dir, "*.*")追问

这样用起来和现实不太符合吧。一般人电脑文件夹里不可能全是图片吧,假如浏览到的文件夹里有其它非图片文件,那就报错了。

追答using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace 百度知道

    class Program
    
        static void Main(string[] args)
        
            string dir = @"C:\\Users\\ling\\Desktop\\1";
            string[] pic = Directory.GetFiles(dir, "*.*");
           // string[] pic1= Directory.GetFiles(dir,"*.jpg||*.bmp||*.png");
            for (int i = 0; i < pic.Length; i++)
            
                string ext = pic[i].Substring(pic[i].LastIndexOf(".") + 1);//拿扩展名
                if (ext == "jpg" || ext=="png" ||ext== "bmp")
                 
                
                   //执行你要的代码,比如picturebox里加图片

                
            
        
    

参考技术C

我也来写一种,虽然不是最优,但看上去也精简,和题主熟悉的方式也相近。

        static void Main(string[] args)
        
            string dir = @"D:\\";
            string[] pics = Directory.GetFiles(dir, "*.jpg")
                .Union(Directory.GetFiles(dir, "*.png")).ToArray();
            foreach (string s in pics)
                Console.WriteLine(s);
            Console.ReadLine();
        

参考技术D "*.jpg||*.png||*.bmp"追问

不行,报错说路径有非法字符。
是不是应该获取全部文件,然后过滤选择所需要的?该怎么写呢

第5个回答  2015-01-09 string[] pic = Directory.GetFiles(dir).Where(s => return s.EndsWith(".jpg") || s.EndsWith(".bmp") || s.EndsWith(".png"); ).ToArray();

android中如何获取指定目录下的图片

需要对指定目录的图片文件进行列表,借鉴了网上的方法,发现列表出来是所有的文件,这样用起来很不方便,在这里也没找到解决的办法,经过自己的进一步研究终于搞定,发上来给有用的同学。
用下面这种方式能实现查询实现查询sd卡某一个子目录下的图片文件详细信息 :

  1. //selection: 指定查询条件
  2. String selection = MediaStore.Images.Media.DATA + " like %?";
  3. //设定查询目录
  4. String path="/mnt/sdcard/youpicpath";
  5. //定义selectionArgs:
  6. String[] selectionArgs = {path+"%"};
  7. c = this.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null,
  8. selection, selectionArgs, null);

其实原理就是改变了下查询语句,在查询条件中增加了MediaStore.Images.Media.DATA字段的限制条件,必须是和指定目录能匹配的才被查询,注意selectionselectionArgs参数是配合使用的。

以上是关于c#如何获取某目录下的几种格式的图片文件。Directory.GetFiles的主要内容,如果未能解决你的问题,请参考以下文章

C# WinForm获取 当前执行程序路径的几种方法

android中如何获取指定目录下的图片

Android 用字符串资源名称获取int型资源id的几种方式

c#遍历目录及子目录下某类型的所有的文件

tomcat部署项目的几种方式

文佳夹操作之获取指定目录下的所有文件及文件夹