遍历某个文件夹中的所有文件(包含任意层子目录), 对每个文件实施一种变换操作

解决方案 »

  1.   

    这个是控制台程序  将文件夹的目录按层次打印的    class Program
        {
            static int i = 0;
            static void Main(string[] args)
            {
                string strPath = Console.ReadLine();
                DirectoryInfo di = new DirectoryInfo(strPath); 
                Console.WriteLine(di.Name);
                OutPutFiles(di);               Console.ReadLine();
            }        /// <summary>
            /// 打印输入路径中的所有子文件和子文件夹
            /// </summary>
            /// <param name="di">要显示的路径</param>
            static void OutPutFiles(DirectoryInfo di)
            {
                try
                {
                    foreach (FileSystemInfo fsi in di.GetFileSystemInfos())
                    {
                        
                        i++;
                        OutputSpace(i);
                        Console.WriteLine(fsi.Name);
                        if ((fsi as DirectoryInfo)!=null)
                        {
                            OutPutFiles((DirectoryInfo)fsi);
                        }
                        i--;
                    }
                }
                catch {}            //无权访问的文件夹直接跳过
            }        /// <summary>
            /// 打印阶梯空格以显示文件等级
            /// </summary>
            /// <param name="i">等级标识</param>
            static void OutputSpace(int i)
            {
                for (int j = 0; j < i; j++)
                {
                    Console.Write("    ");
                }
            }
        }
      

  2.   


    string Path = "C:"; 
    string[] dir=Directory.GetDirectories(Path);//获取C:下所有文件夹 
    string[] files = Directory.GetFiles(Path);//获取C:下所有文件 递归调用这两个方法
      

  3.   

    可以参考我这里写的代码:
    /// <summary>
    /// 路径分割符
    /// </summary>
    private const string PATH_SPLIT_CHAR = "\\";/// <summary>
             /// 将指定目录下的子目录和文件生成xml文档
             /// </summary>
             /// <param name="targetDir">根目录</param>
             /// <returns>返回XmlDocument对象</returns>
             public static XmlDocument CreateXml(string targetDir)
             {
                  XmlDocument myDocument = new XmlDocument();
                  XmlDeclaration declaration = myDocument.CreateXmlDeclaration("1.0","utf-8",null);
                  myDocument.AppendChild(declaration);
                  XmlElement rootElement = myDocument.CreateElement(targetDir.Substring(targetDir.LastIndexOf(PATH_SPLIT_CHAR) + 1));
                  myDocument.AppendChild(rootElement);
                  foreach(string fileName in Directory.GetFiles(targetDir))
                  {
                       XmlElement childElement = myDocument.CreateElement("File");  
                       childElement.InnerText = fileName.Substring(fileName.LastIndexOf(PATH_SPLIT_CHAR) + 1); 
                       rootElement.AppendChild(childElement);
                  }
                  foreach(string directory in  Directory.GetDirectories(targetDir))
                  {
                       XmlElement childElement = myDocument.CreateElement("Directory");
                       childElement.SetAttribute("Name",directory.Substring(directory.LastIndexOf(PATH_SPLIT_CHAR) + 1));
                       rootElement.AppendChild(childElement);
                       CreateBranch(directory,childElement,myDocument);
                  }
                  return myDocument;
             }         /// <summary>
             /// 生成Xml分支
             /// </summary>
             /// <param name="targetDir">子目录</param>
             /// <param name="xmlNode">父目录XmlDocument</param>
             /// <param name="myDocument">XmlDocument对象</param>
             private static void CreateBranch(string targetDir,XmlElement xmlNode,XmlDocument myDocument)
             {
                  foreach(string fileName in Directory.GetFiles(targetDir))
                  { 
                       XmlElement childElement = myDocument.CreateElement("File"); 
                       childElement.InnerText = fileName.Substring(fileName.LastIndexOf(PATH_SPLIT_CHAR)+1); 
                       xmlNode.AppendChild(childElement);
                  }
                  foreach(string directory in  Directory.GetDirectories(targetDir))
                  {
                       XmlElement childElement = myDocument.CreateElement("Directory"); 
                       childElement.SetAttribute("Name",directory.Substring(directory.LastIndexOf(PATH_SPLIT_CHAR) + 1));
                       xmlNode.AppendChild(childElement);
                       CreateBranch(directory,childElement,myDocument);
                  }
             } 
      

  4.   


    string[] dir=Directory.GetDirectories(Path);//获取Path下所有文件夹 
    string[] files = Directory.GetFiles(Path);//获取Path下所有文件 递归的来做
      

  5.   

    string[] files = Directory.GetFiles(folder);查看MSDN,或Google搜一下相关内容,看看就能明白