- 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>
- /// 遍历当前目录及子目录
- /// </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;
- }
- }
- }
- <pre name="code" class="csharp"></pre>
- <pre></pre>
- <pre name="code" class="csharp"></pre><pre name="code" class="csharp"></pre><pre name="code" class="csharp"></pre>