using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;namespace WindowsFormsApplication1获取目录下文件
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){//获取目录下指定类型的文件集合String path = @"../../Views";//第一种方法var files = Directory.GetFiles(path, "*.txt");foreach (var file in files){Console.WriteLine(file); //输出的路径+名称
            }//第二种方法DirectoryInfo folder = new DirectoryInfo(path);//目录信息foreach (FileInfo file in folder.GetFiles("*.txt")){Console.WriteLine(file.FullName); //获取每个文件的所有信息
            }//C#遍历指定文件夹中的所有文件 DirectoryInfo TheFolder = new DirectoryInfo(path);//遍历文件夹foreach (DirectoryInfo NextFolder in TheFolder.GetDirectories()){//this.listBox1.Items.Add(NextFolder.Name);
            }//遍历文件foreach (FileInfo NextFile in TheFolder.GetFiles()){//this.listBox2.Items.Add(NextFile.Name);
            }}public void FindFile(string dirPath) //参数dirPath为指定的目录
        {//在指定目录及子目录下查找文件,在listBox1中列出子目录及文件DirectoryInfo Dir = new DirectoryInfo(dirPath);try{foreach (DirectoryInfo d in Dir.GetDirectories())//查找子目录
                {FindFile(Dir + d.ToString() + "\\");//listBox1.Items.Add(Dir+d.ToString()+"\");    //listBox1中填加目录名
                }foreach (FileInfo f in Dir.GetFiles("*.---")) //查找文件
                {//listBox1.Items.Add(Dir+f.ToString()); //listBox1中填加文件名
                }}catch (Exception e){MessageBox.Show(e.Message);}}public void ListFiles(FileSystemInfo info) ////文件系统信息 参数为目录
        {if (info.Exists != true) return; //不存在就返回DirectoryInfo dir = info as DirectoryInfo; //这句是否多余???if (dir == null) return; //是否是目录类型FileSystemInfo[] files = dir.GetFileSystemInfos(); //返回文件目录和所有文件for (int i = 0; i < files.Length; i++){FileInfo file = files[i] as FileInfo;if (file != null) //是文件
                {if (file.Extension.Contains("cshtml")){this.dataGridView1.Rows.Add(file.Name, file.Length);//文件名和大小
                    }Console.WriteLine(file.FullName + "\t " + file.Length); //输出完整目录和大小
                }//对于子目录,进行递归调用 else  //不是文件,是目录
                {ListFiles(files[i]); // 递归
                }}}private void button2_Click(object sender, EventArgs e){#region --清空dataGridView//清空方法1DataTable dt = (DataTable)dataGridView1.DataSource;if (dt != null && dt.Rows.Count > 0){dt.Columns.Clear();dt.Rows.Clear();dataGridView1.DataSource = dt;}//清空方法2
            dataGridView1.Columns.Clear();dataGridView1.Rows.Clear();#endregion#region --添加列this.dataGridView1.Columns.Add("0", "文件路径");//添加列this.dataGridView1.Columns.Add("0", "文件大小");this.dataGridView1.Columns.Add("0", "是否存在");#endregion#region --添加行并设置值,this.dataGridView1.Rows.Add("第一个字段值", "第二个字段值", "第三个字段值");//添加一行数据dataGridView1.Rows[0].Cells[0].Value = "00000000";dataGridView1.Rows[0].Cells[1].Value = "11111111";dataGridView1.Rows[0].Cells[2].Value = "22222222";//或者//循环添加行并设置值for (int i = 1; i <= 6; i++){int index = this.dataGridView1.Rows.Add(); //添加行this.dataGridView1.Rows[index].Cells[0].Value = i; //设置值
            }#endregion////测试按钮#region --遍历目录文件到列表中DirectoryInfo folder = new DirectoryInfo("../../Views");//目录信息
            ListFiles(folder);#endregionthis.dataGridView1.Rows.Add("第一个字段值", "第二个字段值");//未传参默认为空值.//--
        }private void Form1_Load(object sender, EventArgs e){dataGridView1.ReadOnly = true;//只读属性dataGridView1.AllowUserToAddRows = false; //不显示出dataGridView1的最后一行空白
}List<string> resuls = new List<string>();private void button3_Click(object sender, EventArgs e){//获得目录下所有文件 ,并循环读取内容,var files = Directory.GetFiles(@"F:\人行项目\新建文件夹\20180817");for (int i = 0; i < files.Length;i++ ){var array = File.ReadAllLines(files[i], Encoding.GetEncoding("gb2312")); //打开一个文本文件,读取文件的所有行,然后关闭该文件。string result = string.Join("\r\n", array);//array为数组if (result.Contains("年报表")){resuls.Add(files[i]);var path = Application.StartupPath; //\bin\DebugSystem.IO.DirectoryInfo topDir = System.IO.Directory.GetParent(System.Environment.CurrentDirectory);var path1 = topDir.FullName;  //文件\bin.if (Directory.Exists(path1+"\\temp") == false)//如果不存 就创建,
                    {Directory.CreateDirectory(path1 + "\\temp");}if (File.Exists(files[i]))//必须判断要复制的文件是否存在
                    {File.Copy(files[i], path1 + "\\temp\\" + Path.GetFileName(files[i]), true);//三个参数分别是源文件路径,存储路径,若存储路径有相同文件是否替换
                    }}}//重复的csv名称,读取后,归类, 上传
MessageBox.Show("完成");}/// <summary>/// 复制文件夹中的所有内容/// </summary>/// <param name="sourceDirPath">源文件夹目录</param>/// <param name="saveDirPath">指定文件夹目录</param>public void CopyDirectory(string sourceDirPath, string saveDirPath){try{if (!Directory.Exists(saveDirPath)) //判断路径是否存在
                {Directory.CreateDirectory(saveDirPath);//不存在 创建
                }string[] files = Directory.GetFiles(sourceDirPath);//返回指定路径下的所有文件foreach (string file in files){string pFilePath = saveDirPath + "\\" + Path.GetFileName(file);if (File.Exists(pFilePath))//文件是否存在continue; File.Copy(file, pFilePath, true);//复制文件
                }string[] dirs = Directory.GetDirectories(sourceDirPath);//返回指定目录下的子文件夹foreach (string dir in dirs){CopyDirectory(dir, saveDirPath + "\\" + Path.GetFileName(dir)); //GetFileName获得文件夹名称
                }}catch (Exception ex){//if (File.Exists(pLocalFilePath))//必须判断要复制的文件是否存在//{//    File.Copy(pLocalFilePath, pSaveFilePath, true);//三个参数分别是源文件路径,存储路径,若存储路径有相同文件是否替换//}
            }}   }
}

转载于:https://www.cnblogs.com/enych/p/11084303.html

C# 获取目录下文件相关推荐

  1. golang中io/ioutil.readdir和path/filepath.walk遍历获取目录下文件性能比较

    在使用golang进行开发,获取当前目录下文件或文件列表时候有两种库方法可以供使用.但是那种性能好,在网上没有找到详细的描述,因此自己写了两个函数,进行了下比较.最终发现ioutil的效率要高很高. ...

  2. TreeView获取目录下的所有文件

    /// <summary> /// TreeView获取目录下的所有文件 /// </summary> /// <param name="tree"& ...

  3. 数值策划的自我修养(二):用VBA批量获取指定目录下文件的名字

    目录索引 批量获取指定目录下文件的名字 批量获取指定目录下文件的名字 游戏项目的管理,自然少不了配置表的管理.今天记录的是如何在制作配置表管理工具时批量获取配置表文件夹下的配置表名并顺序写到一张Exc ...

  4. java 递归获取目录下所有文件

    对于一个嵌套的目录,获取目录下所有的文件,可以使用一下两种方式: 1.递归方法: static List<String> ergodic(File file, List<String ...

  5. 获取resources目录下文件路径的九套功法

    文章目录 前述 功法一 功法二 功法三 功法四(重要) 功法五(重要) 功法六(重要) 功法七 功法八 功法九 前述 项目开发中,经常会有一些静态资源,被放置在resources目录下,随项目打包在一 ...

  6. 关于BaiduPCS-Go不能用问题解决,报错【获取目录下的文件列表 遇到错误, 远端服务器返回错误】

           BaiduPCS-Go不能使用报错:获取目录下的文件列表 遇到错误, 远端服务器返回错误, 代码: 4, 消息: No permissionto do this operation, 路 ...

  7. python 实现统计ftp服务器指定目录下文件夹数目、文件数目及所有文件大小 本次主要为满足应用方核对上传到ftp服务器的文件是否缺漏。 主要要求:指定目录下,文件夹数目/文件数目/所有文件大小

    python 实现统计ftp服务器指定目录下文件夹数目.文件数目及所有文件大小 本次主要为满足应用方核对上传到ftp服务器的文件是否缺漏. 主要要求:指定目录下,文件夹数目/文件数目/所有文件大小,类 ...

  8. springboot-项目获取resources下文件的方法

    spring项目获取resources下文件的方法 最近写读取模板文件做一些后续的处理,将文件放在了项目的resources 下,发现了一个好用的读取方法: 比如上边是你需要读取的文件: 读取的方法如 ...

  9. java 获取classpath下文件多种方式

    java 获取classpath下文件多种方式 一:properties下配置 在resources下定义server.properties register.jks.path=classpath\: ...

最新文章

  1. 代码示例_网络编程_select
  2. Silverlight HLSL实现背景滚动
  3. 生成ftp文件的目录树
  4. Master公式(计算递归复杂度)
  5. linux下安装 配置 redis数据库
  6. cocos2d-x游戏开发(十五)游戏加载动画loading界面
  7. 画一画javascript原型链
  8. html5头像裁剪,移动端 上传头像 并裁剪功能(h5)
  9. 【sql绕过】Bypass waf notepad of def
  10. Python argparse模块详解
  11. 两种实现大图内容平移效果的方法
  12. Linux栈溢出漏洞原理,盘它!PWN栈溢出漏洞。
  13. STM32学习心得二十五:光敏传感器原理及实验
  14. php格式文件用什么看,.zbf是什么格式文件,用什么看的
  15. DevExpress中的自定义报表控件使用
  16. 钱晓捷第五版习题4 题4.8 bufx bufy bufz 为三个有符号十六进制数编写一个比较相等关系的程序如果这三个数都不相等则显示0,其中两个相等显示1 ,三个都相等则显示2
  17. java heartbeat
  18. 对于硬盘做了raid的Windows server 2016服务器重置密码
  19. 4G路由 linux,DIY低成本4G路由器:性能高,易于开发和应用
  20. HarmonyOS的定义是什么?

热门文章

  1. python 时间-秒_Python-代码等待10秒不直观,教你用进度条显示时间进度
  2. 记一次Debian11安装
  3. 蓝桥杯单片机十一届省赛_“第十届蓝桥杯青少组C++省赛”前三题解题思路及参考答案!...
  4. 高德软件测试工资,【高德工资】软件测试工程师待遇-看准网
  5. hp服务器raid制作,HP服务器建立RAID的两种方法
  6. 漳州市2021高考成绩查询,漳州市招生管理系统2021漳州中考成绩查询入口
  7. layuiAdmin打开新窗口、新标签页
  8. MySql error 1010 无法删除数据库
  9. Ubuntu连接WiFi
  10. CyclicBarrier(回环栅栏)