苏飞论坛

标题: C#获取目录下的所有文件,指定格式,使用Directory进行获取 [打印本页]

作者: yangying    时间: 2013-5-8 08:18
标题: C#获取目录下的所有文件,指定格式,使用Directory进行获取
[C#] 纯文本查看 复制代码
 //Directory要引用using System.IO;才可以使用
            string[] dirs = Directory.GetFiles("文件夹完整路径", "*.xml");
            //取列表
            foreach (string item in dirs)
            {
                //item就是每个文件的完整路径+文件名
            }

"*.xml"
是要找的文件类型,大家可以根据自己的需求写,我这样是只找到所有的xml文件,
"*.*" 所有文件
"*.txt" 所有txt文件
"a*.xml" 开头是a的所有xml文件
语法就是这样,大家自己试试吧

作者: OO。    时间: 2013-7-3 11:29
本帖最后由 OO。 于 2013-7-3 11:32 编辑

如果文件数量大的话,然后又有子文件夹的情况下,获取指定格式的文件路径, 有更有效率的方式吗?

比如,一个文件夹下有100W个txt文档,子文件夹不等,获取所有txt文档路径的话, 有没有有效率的方式。

作者: 站长苏飞    时间: 2013-7-3 11:35
OO。 发表于 2013-7-3 11:29
如果文件数量大的话,然后又有子文件夹的情况下,获取指定格式的文件路径, 有更有效率的方式吗?

比如 ...

100万也没事吧,这种方式,100万我估计也就是一两秒的事

作者: OO。    时间: 2013-7-3 11:45
站长苏飞 发表于 2013-7-3 11:35
100万也没事吧,这种方式,100万我估计也就是一两秒的事

上次弄了60W个文档, 放了差不多20分钟没有弄出来。
不知道是不是我电脑问题。 下次在试试。

上次想了一种思路,
string[] allfile = Directory.GetFiles(path);  这样可以直接获取文件夹下所有文件。
有没有什么东西可以直接累加这个allfile的

作者: 站长苏飞    时间: 2013-7-3 11:48
OO。 发表于 2013-7-3 11:45
上次弄了60W个文档, 放了差不多20分钟没有弄出来。
不知道是不是我电脑问题。 下次在试试。

http://www.sufeinet.com/thread-3690-1-1.html你试试我的工具,里面有文件移动器看看获取文件数快不快,这个就是使用这种方式实现的

作者: gangn    时间: 2013-7-4 22:54
谢谢了,收藏了
作者: 苍月    时间: 2016-11-17 10:24
public static void GetFileAndDiretoryToTree(string path, TreeNodeCollection treeNodeCollection)
        {
            try
            {
                //获取地址中的文件夹
                String[] dire = Directory.GetDirectories(path);
                //获取地址中的文件
                string[] file = Directory.GetFiles(path);
                //遍历文件夹
                foreach (var item in dire)
                {
                    //获取文件家地址
                    TreeNode node = treeNodeCollection.Add(Path.GetFileName(item));
                    //递归调用  把文件夹下的所有子文件和文件夹都加载到树上
                    GetFileAndDiretoryToTree(item, node.Nodes);
                }
                //遍历文件
                foreach (var item in file)
                {
                    //把文件所有文件都加载到树上
                    treeNodeCollection.Add(Path.GetFileName(item));
                }
            }
            catch (Exception)
            {

                MessageBox.Show("地址错误");
            }
        }
如果第一次输入的path是f:\它就会报错   这个该怎么改  如果写判断 if(path=="c:\\" && path=="d:\\")这样写好几个盘  那样这个语句也太长了
作者: 爱悖论的孩子    时间: 2017-3-14 10:35
获取某种特定格式的文件如.XML文件,只适用于自己开发的软件的显示形式(将文件的显示改为某种图片),这种怎么实现呢




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4