C#遍歷文件夾及其子目錄的完整實(shí)現(xiàn)方法
本文實(shí)例講述了C#遍歷文件夾及其子目錄的完整實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Security.AccessControl;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("STT");
string str = @"E:\";
if (!str.EndsWith("\\"))
{
str += "\\";
}
IList<FileInfo> lst = GetFiles(str);
if (!Directory.Exists(str))
{
try
{
Directory.CreateDirectory(str);
}
catch(Exception e)
{
Console.WriteLine(e.Message);
Console.ReadKey();
return;
}
}
if (File.Exists(str + "test.txt"))
{
File.Delete(str + "test.txt");
}
FileInfo file = new FileInfo(str + "test.txt");
if (!file.Directory.Exists)
{
Directory.CreateDirectory(file.DirectoryName);
}
using (StreamWriter outFileWriter = new StreamWriter(str + "test.txt", false, Encoding.UTF8))
{
StringBuilder sb = new StringBuilder();
foreach (FileInfo item in lst)
{
sb.Append("\"");
sb.Append(item.FullName);
sb.Append("\"");
sb.Append(",");
sb.Append("\r\n");
}
sb.Remove(sb.Length - 2, 2);
outFileWriter.WriteLine(sb.ToString());
outFileWriter.Flush();
outFileWriter.Close();
}
Console.WriteLine("END");
Console.ReadKey();
}
private static void GetDirectorys(string strPath, ref List<string> lstDirect)
{
DirectoryInfo diFliles = new DirectoryInfo(strPath);
DirectoryInfo[] diArr = diFliles.GetDirectories();
//DirectorySecurity directorySecurity = null;
foreach (DirectoryInfo di in diArr)
{
try
{
//directorySecurity = new DirectorySecurity(di.FullName, AccessControlSections.Access);
//if (!directorySecurity.AreAccessRulesProtected)
//{
lstDirect.Add(di.FullName);
GetDirectorys(di.FullName, ref lstDirect);
//}
}
catch
{
continue;
}
}
}
/// <summary>
/// 遍歷當(dāng)前目錄及子目錄
/// </summary>
/// <param name="strPath">文件路徑</param>
/// <returns>所有文件</returns>
private static IList<FileInfo> GetFiles(string strPath)
{
List<FileInfo> lstFiles = new List<FileInfo>();
List<string> lstDirect = new List<string>();
lstDirect.Add(strPath);
DirectoryInfo diFliles = null;
GetDirectorys(strPath, ref lstDirect);
foreach (string str in lstDirect)
{
try
{
diFliles = new DirectoryInfo(str);
lstFiles.AddRange(diFliles.GetFiles());
}
catch
{
continue;
}
}
return lstFiles;
}
}
}
更多關(guān)于C#相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《C#遍歷算法與技巧總結(jié)》、《C#程序設(shè)計(jì)之線程使用技巧總結(jié)》、《C#操作Excel技巧總結(jié)》、《C#中XML文件操作技巧匯總》、《C#常見控件用法教程》、《WinForm控件用法總結(jié)》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》、《C#數(shù)組操作技巧總結(jié)》及《C#面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》
希望本文所述對(duì)大家C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
C# Csv實(shí)現(xiàn)基本的讀寫和轉(zhuǎn)換DataTable
本文主要介紹了C# Csv實(shí)現(xiàn)基本的讀寫和轉(zhuǎn)換DataTable,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
C# Email發(fā)送郵件 對(duì)方打開郵件可獲得提醒
這篇文章主要為大家詳細(xì)介紹了C# Email發(fā)送郵件功能,對(duì)方打開通知你,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
DevExpress GridControl實(shí)現(xiàn)根據(jù)RowIndex和VisibleColumnsIndex來(lái)獲取單元格
這篇文章主要介紹了DevExpress GridControl實(shí)現(xiàn)根據(jù)RowIndex和VisibleColumnsIndex來(lái)獲取單元格值,需要的朋友可以參考下2014-08-08
Unity接入高德開放API實(shí)現(xiàn)IP定位
這篇文章主要為大家介紹了Unity如何接入高德開放API實(shí)現(xiàn)IP定位功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定參考價(jià)值,需要的可以參考一下2022-04-04

