C#遍历指定文件夹下的所有文件和所有子目录

转载自:https://www.cnblogs.com/Drajun/p/7775266.html

C#遍历指定文件夹下的所有文件和所有子目录

程序使用Directory、DirectoryInfo类

  1. Directory.GetCurrentDirectory()获得当前运行程序的路径
  2. DirectoryInfo对象.GetDirectories()获得该文件夹下的子目录,返回类型为DirectoryInfo
  3. DirectoryInfo对象.GetFiles()获得该文件夹下的文件,返回类型为FileInfo
  1. DirectoryInfo对象.Name获得文件夹名
  2. DirectoryInfo对象.FullName获得文件夹完整的路径名
  3. FileInfo对象.Name  和 FileInfo对象.FullName 同理

程序使用以上方法,递归地输出当前运行程序所在的磁盘下的所有文件名和子目录名,并将结果保存在指定的txt文件中

复制代码
class Program
    {
        static void Main(string[] args)
        {
            //获取当前程序所在的文件路径
            String path = Directory.GetCurrentDirectory();
            String path2 = path.Substring(0, 3);     //取盘符
            StreamWriter sw=null;
            try{
                //创建输出流,将得到文件名子目录名保存到txt中
                sw = new StreamWriter(new FileStream("files.txt",FileMode.Append));
                sw.WriteLine("根目录:" + path2);
                getDirectory(sw,path2, 2);
            }
            catch(IOException e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                if (sw != null)
                {
                    sw.Close();
                    Console.WriteLine("完成");
                }
            }
    }

    </span><span style="color: #008000;">/*</span><span style="color: #008000;">
     * 获得指定路径下所有文件名
     * StreamWriter sw  文件写入流
     * string path      文件路径
     * int indent       输出时的缩进量
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> getFileName(StreamWriter sw, <span style="color: #0000ff;">string</span> path,<span style="color: #0000ff;">int</span><span style="color: #000000;"> indent)
    {
        DirectoryInfo root </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> DirectoryInfo(path);
        </span><span style="color: #0000ff;">foreach</span>(FileInfo f <span style="color: #0000ff;">in</span><span style="color: #000000;"> root.GetFiles())
        {
            </span><span style="color: #0000ff;">for</span> (<span style="color: #0000ff;">int</span> i = <span style="color: #800080;">0</span>; i &lt; indent; i++<span style="color: #000000;">)
            {
                sw.Write(</span><span style="color: #800000;">"</span>  <span style="color: #800000;">"</span><span style="color: #000000;">);
            }
            sw.WriteLine(f.Name);
        }
    }

    </span><span style="color: #008000;">//</span><span style="color: #008000;">获得指定路径下所有子目录名</span>
    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> getDirectory(StreamWriter sw, <span style="color: #0000ff;">string</span> path,<span style="color: #0000ff;">int</span><span style="color: #000000;"> indent)
    {
        getFileName(sw,path,indent);
        DirectoryInfo root </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> DirectoryInfo(path);
        </span><span style="color: #0000ff;">foreach</span>(DirectoryInfo d <span style="color: #0000ff;">in</span><span style="color: #000000;"> root.GetDirectories())
        {
            </span><span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">int</span> i = <span style="color: #800080;">0</span>; i &lt; indent; i++<span style="color: #000000;">)
            {
                sw.Write(</span><span style="color: #800000;">"</span>  <span style="color: #800000;">"</span><span style="color: #000000;">);
            }
            sw.WriteLine(</span><span style="color: #800000;">"</span><span style="color: #800000;">文件夹:</span><span style="color: #800000;">"</span>+<span style="color: #000000;">d.Name);
            getDirectory(sw,d.FullName,indent</span>+<span style="color: #800080;">2</span><span style="color: #000000;">);
            sw.WriteLine();
        }
    }
}</span></pre>
复制代码

结果:

分类: C#
0
0
« 上一篇: ASP.NET MVC页面搜索功能实现(普通方法和使用Ajax)
» 下一篇: 使用jquery实现简单的表格分页-表头不变
	</div>
	<div class="postDesc">posted @ <span id="post-date">2017-11-02 23:48</span> <a href="https://www.cnblogs.com/Drajun/">Drajun</a> 阅读(<span id="post_view_count">22713</span>) 评论(<span id="post_comment_count">0</span>)  <a href="https://i.cnblogs.com/EditPosts.aspx?postid=7775266" rel="nofollow">编辑</a> <a href="#" onclick="AddToWz(7775266);return false;">收藏</a></div>
</div>

猜你喜欢

转载自blog.csdn.net/Melody1994/article/details/91300680