天天看點

C#擷取全部目錄和檔案

public class FileAccess

{

//儲存所有檔案夾名

private ArrayList dirs;

public FileAccess()

{

dirs = new ArrayList();

}

//擷取所有檔案名

private ArrayList GetFileName(string dirPath)

ArrayList list = new ArrayList();

if (Directory.Exists(dirPath))

{

list.AddRange(Directory.GetFiles(dirPath));

}

return list;

//擷取所有檔案夾及子檔案夾

private void GetDirs(string dirPath)

if (Directory.GetDirectories(dirPath).Length > 0)

foreach (string path in Directory.GetDirectories(dirPath))

{

dirs.Add(path);

GetDirs(path);

}

/// <summary>

/// 擷取給出檔案夾及其子檔案夾下的所有檔案名

/// (檔案名為路徑加檔案名及字尾,

/// 使用的時候GetAllFileName().ToArray()方法可以轉換成object數組

/// 之後再ToString()分别得到檔案名)

/// </summary>

/// <param name="rootPath">檔案夾根目錄</param>

/// <returns></returns>

public ArrayList GetAllFileName(string rootPath)

dirs.Add(rootPath);

GetDirs(rootPath);

object[] allDir = dirs.ToArray();

foreach (object o in allDir)

list.AddRange(GetFileName(o.ToString()));

/// 如果上個方法不知道怎麼用,那就調用這個方法吧

/// <param name="rootPath"></param>

public List<string> FileName(string rootPath)

List<string> list = new List<string>();

foreach (object o in GetAllFileName(rootPath).ToArray())

list.Add(o.ToString());

}