#基础知识

  1、获得当前运行程序的路径

 string rootPath = Directory.GetCurrentDirectory();

  2、获得该文件夹下的文件,返回类型为FileInfo

 string path=@"X:\XXX\XX";
DirectoryInfo root = new DirectoryInfo(path);
FileInfo[] files=root.GetFiles();

  3、获得该文件夹下的子目录,返回类型为DirectoryInfo

 string path=@"X:\XXX\XX";
DirectoryInfo root = new DirectoryInfo(path);
DirctoryInfo[] dics=root.GetDirectories();

  4、获得文件夹名

 string path=@"X:\XXX\XX";
DirectoryInfo root = new DirectoryInfo(path);
string dicName=root.Name;

  5、获得文件夹完整的路径名

 string path=@"X:\XXX\XX";
DirectoryInfo root = new DirectoryInfo(path);
string dicName=root.FullName;

  6、获取文件的Name和FullName

 string path=@"X:\XXX\XX";
DirectoryInfo root = new DirectoryInfo(path);
foreach (FileInfo f in root.GetFiles())
{
string name=f.Name;
string fullName=f.FullName;
}

#只获取目录下一级的文件夹与文件

 String path = @"X:\xxx\xxx";

 //第一种方法
string[] files = Directory.GetFiles(path, "*.txt"); foreach (string file in files)
{
Console.WriteLine(file);
} //第二种方法
DirectoryInfo folder = new DirectoryInfo(path); foreach (FileInfo file in folder.GetFiles("*.txt"))
{
Console.WriteLine(file.FullName);
}

# 递归地输出当前运行程序所在的磁盘下的所有文件名和子目录名

         static void Main(string[] args)
{
//获取当前程序所在的文件路径
String rootPath = Directory.GetCurrentDirectory();
string parentPath = Directory.GetParent(rootPath).FullName;//上级目录
string topPath = Directory.GetParent(parentPath).FullName;//上上级目录
StreamWriter sw = null;
try
{
//创建输出流,将得到文件名子目录名保存到txt中
sw = new StreamWriter(new FileStream("fileList.txt", FileMode.Append));
sw.WriteLine("根目录:" + topPath);
getDirectory(sw, topPath, );
}
catch (IOException e)
{
Console.WriteLine(e.Message);
}
finally
{
if (sw != null)
{
sw.Close();
Console.WriteLine("完成");
}
} } /// <summary>
/// 获得指定路径下所有文件名
/// </summary>
/// <param name="sw">文件写入流</param>
/// <param name="path">文件写入流</param>
/// <param name="indent">输出时的缩进量</param>
public static void getFileName(StreamWriter sw, string path, int indent)
{
DirectoryInfo root = new DirectoryInfo(path);
foreach (FileInfo f in root.GetFiles())
{
for (int i = ; i < indent; i++)
{
sw.Write(" ");
}
sw.WriteLine(f.Name);
}
} /// <summary>
/// 获得指定路径下所有子目录名
/// </summary>
/// <param name="sw">文件写入流</param>
/// <param name="path">文件夹路径</param>
/// <param name="indent">输出时的缩进量</param>
public static void getDirectory(StreamWriter sw, string path, int indent)
{
getFileName(sw, path, indent);
DirectoryInfo root = new DirectoryInfo(path);
foreach (DirectoryInfo d in root.GetDirectories())
{
for (int i = ; i < indent; i++)
{
sw.Write(" ");
}
sw.WriteLine("文件夹:" + d.Name);
getDirectory(sw, d.FullName, indent + );
sw.WriteLine();
}
}

------------------------------------------------------

【C#】C#获取文件夹下的所有文件的更多相关文章

  1. java:多层文件夹情况下,判断文件夹下是否有文件夹,并获取到没有文件夹的名字的方法

    业务问题案例 在公司遇到的一个问题,本以为很小很好解决,没想到花了一下午时间.图给的是文件路径,page1下有10个文件夹,每个有的有文件夹或者文件,要求得到page1下(即:123456789,10 ...

  2. JAVA获取文件夹下所有的文件

    package com.test; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; im ...

  3. C++获取某个文件夹下的所有文件

    获取某个文件夹下的所有文件,返回各文件的路径加文件名 path为某文件夹的路径:eg. char * filePath = "C:\\Users\\WUQP\\Desktop\\test_d ...

  4. C/C++ 获取文件夹下的所有文件列表

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/51009608 提供一段C/C++代码示 ...

  5. GreenDao 数据库:使用Raw文件夹下的数据库文件以及数据库升级

    一.使用Raw文件夹下的数据库文件 在使用GreenDao框架时,数据库和数据表都是根据生成的框架代码来自动创建的,从生成的DaoMaster中的OpenHelper类可以看出: public sta ...

  6. IO流的练习3 —— 复制多级文件夹下的指定文件并改名

    需求:复制指定目录下的指定文件,并修改后缀名. 指定的文件是:.java文件. 指定的后缀名是:.jad 数据源所在文件夹:C:\Users\Administrator\Desktop\记录 目的地所 ...

  7. JAVA 遍历文件夹下的所有文件

    JAVA 遍历文件夹下的所有文件(递归调用和非递归调用) 1.不使用递归的方法调用. public void traverseFolder1(String path) { int fileNum = ...

  8. JAVA 遍历文件夹下的所有文件(递归调用和非递归调用)

    JAVA 遍历文件夹下的所有文件(递归调用和非递归调用) 1.不使用递归的方法调用. public void traverseFolder1(String path) { int fileNum = ...

  9. php 遍历一个文件夹下的所有文件和子文件

    php 遍历一个文件夹下的所有文件和子文件 <?php /** * 将读取到的目录以数组的形式展现出来 * @return array * opendir() 函数打开一个目录句柄,可由 clo ...

  10. Java遍历一个文件夹下的全部文件

    Java工具中为我们提供了一个用于管理文件系统的类,这个类就是File类,File类与其它流类不同的是,流类关心的是文件的内容.而File类关心的是磁盘上文件的存储. 一,File类有多个构造器,经常 ...

随机推荐

  1. Codeforces Round #540 (Div. 3) A,B,C,D2,E,F1

    A. Water Buying 链接:http://codeforces.com/contest/1118/problem/A 实现代码: #include<bits/stdc++.h> ...

  2. gulp 技巧

    install npm install --save-dev jshint gulp-jshint 压缩js npm install --save-dev gulp-minify-css xxCSS ...

  3. 故障排错-ping dup!

    ping DUP! ping一个vc中虚拟机的地址发现如下,出现了DUP! . 解决方式如下: 1.根据mac地址找到虚拟机网卡的端口组 然后编辑绑定和故障切换,切换负责平衡

  4. [HEOI2014]逻辑翻译(分治)

    题目描述 在人类的神经系统中,每个信号都可以用?1或+1来表示.这些信号组合起来最后形成 了喜怒哀乐,酸甜苦辣,红黄绿蓝等各种各样的复杂信息.纳米探测科技的突破让生物学家 可以测量大脑中特定区域的完整 ...

  5. centos7安装sonarqube6.7 代码质量管理平台

    应用介绍:SonarQube是一个用于代码质量管理的开源平台,用于管理源代码的质量通过插件形式:    可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groov ...

  6. Linux网络那点事(CentOS、Ubuntu、Kali)

    跨平台系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#linux 在Ubuntu18.04中,传统的配置/etc/network/interfa ...

  7. OO第三阶段纪实

    $0 写在前面 万里长征已过大半,即将迎来胜利的曙光.一路走来,经历过种种艰难,体会颇深.希望能记录下这篇博文,来总结这一个月来的收获与感悟. $1 规格化设计的发展历史 上世纪50年代,软件伴随着第 ...

  8. ElasticSearch启动错误处理方法

    在配置完elasticsearch,启动程序会包如下错误: [elk@localhost bin]$ ./elasticsearch ... ... ERROR: [3] bootstrap chec ...

  9. wildfly 10上使用最新的 Hibernate ORM OGM

    ORM是关系型数据库连接:ogm是No sql数据库连接,Mongo, redis等. 1,下载ogm zip包,解压到wildfly_home\modules\system\layers\base, ...

  10. C# Winfrom常用的几个公共控件

    ComboBox控件的使用方法: //首先写好查询方法,实例化对象, NationData nd = new NationData(); List<Nation> NN = new Lis ...