获取文件夹内文件名字及源代码C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WinFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private string temStr;Thread thdAddFile;private void button1_Click(object sender, EventArgs e){//打开文件夹对话框if (folderBrowserDialog1.ShowDialog() == DialogResult.OK){//显示选择的文件夹路径textBoxFile.Text = folderBrowserDialog1.SelectedPath;//存储选择的文件夹路径temStr = folderBrowserDialog1.SelectedPath;//创建一个线程//thdAddFile = new Thread(new ThreadStart(SetAddFile));//执行当前线程//thdAddFile.Start();TreeNode TNode = new TreeNode();File_Copy(treeView1, temStr, TNode, 0);}}//定义委托线程public delegate void AddFile();/// <summary>/// 对指定的线程进行托管/// </summary>public void SetAddFile(){this.Invoke(new AddFile(RunAddFile));}public void RunAddFile(){//创建一个线程TreeNode TNode = new TreeNode();File_Copy(treeView1, temStr, TNode, 0);//执行主线程Thread.Sleep(100);//执行线程//thdAddFile.Abort();}private void File_Copy(TreeView TV, string Sdir, TreeNode TNode, int n){DirectoryInfo dir = new DirectoryInfo(Sdir);try{//判断所指的文件夹/文件是否存在if (!dir.Exists)return;DirectoryInfo dirD = dir as DirectoryInfo;//如果给定参数不是文件夹则退出 判断文件夹是否为空if (dirD == null)return;else{if (n == 0){//添加文件夹的名称TNode = TV.Nodes.Add(dirD.Name);TNode.Tag = 1;}else{//在文件夹中添加各子文件夹的名称TNode = TNode.Nodes.Add(dirD.Name);TNode.Tag = 1;}}//获取文件夹所有文件和文件夹FileSystemInfo[] files = dirD.GetFileSystemInfos();//对单个FileSystemInfo进行判断,如果是文件夹则进行递归操作foreach (FileSystemInfo FSys in files){FileInfo fileInfo = FSys as FileInfo;//如果是文件,进行文件的复制操作if (fileInfo != null){//获取文件所在原始路径FileInfo SFInfo = new FileInfo(fileInfo.DirectoryName + "\\" + fileInfo.Name);TNode.Nodes.Add(fileInfo.Name);TNode.Tag = 1;}else{string pp = FSys.Name;//如果是文件夹,则进行递归调用File_Copy(TV, Sdir + "\\" + FSys.ToString(), TNode, 1);}}}catch (Exception ex){MessageBox.Show(ex.Message);return;}}
}
}