日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# 获取目录下文件

發布時間:2024/9/5 C# 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# 获取目录下文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的C# 获取目录下文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。