更新记录

本文迁移自Panda666原博客,原发布时间:2021年5月16日。

说明

.NET的类库API设计的非常优秀,再加上文档docs.com写的非常优秀,写代码给人一种十分优雅的感觉。

获得当前运行程序集所在的同级路径

string assemblyRootPath = Directory.GetCurrentDirectory();

注意:需要引入命名空间System.IO:

using System.IO;

获得指定文件夹下的文件并做筛选

string pathForTest = @"D:/test";
DirectoryInfo directoryInfo = new DirectoryInfo(pathForTest);
//注意:返回类型为:FileInfo
FileInfo[] files = directoryInfo.GetFiles();
//获得总文件个数
Console.WriteLine(files.Length);
//筛选出Excel文件(.xlsx|.xls)
IEnumerable<FileInfo> result1 = files.Where(file => file.Name.Contains(".xls"))
.Select(file=>file);
//获得筛选出的文件个数
Console.WriteLine(result1.Count());

注意:需要以下引入命名空间:

using System.IO;
using System.Linq;

获得指定文件夹下的子目录

string path = @"D:\test";
DirectoryInfo directoryInfo = new DirectoryInfo(path);
//注意:返回类型为DirectoryInfo
DirectoryInfo[] subDirectoryInfos = directoryInfo.GetDirectories();
//获得子目录的个数
Console.WriteLine(subDirectoryInfos.Count());
//筛选子目录
IEnumerable<DirectoryInfo> directoryInfo2 = subDirectoryInfos.Where(d => d.Name.Contains("abc")).Select(d => d);

注意:需要以下引入命名空间:

using System.IO;
using System.Linq;

获得目录下的所有项(子目录和文件)

//用于测试的路径
string pathForTest = @"D:/test/";
//新建目录信息对象
DirectoryInfo directoryInfo = new DirectoryInfo(pathForTest);
//获得子项
foreach (FileSystemInfo item in directoryInfo.GetFileSystemInfos())
{
Console.Write(item.Name);
Console.Write(item is FileInfo ? "是文件":"不是文件");
Console.WriteLine(item is DirectoryInfo ? "是目录":"不是目录");
}

获得路径字符串中的文件名称

//用于测试的路径
string pathForTest = @"D:/test1/test2/test3.xlsx";
//带扩展名
Console.WriteLine(Path.GetFileName(pathForTest));
//不带扩展名
Console.WriteLine(Path.GetFileNameWithoutExtension(pathForTest));

C#中常用的目录|文件|路径信息操作的更多相关文章

  1. python找递归目录中文件,并移动到一个单独文件夹中,同时记录原始文件路径信息

    运营那边有个需求. 下载了一批视频文件,由于当时下载的时候陆陆续续创建了很多文件夹,并且,每个文件夹下面还有子文件夹以及视频文件,子文件夹下面有视频文件或者文件夹 现在因为需要转码,转码软件只能对单个 ...

  2. Nginx中的root&alias文件路径及索引目录配置详解

    这篇文章主要介绍了Nginx中的root&alias文件路径及索引目录配置,顺带讲解了root和alias命令的用法,需要的朋友可以参考下     root&alias文件路径配置ng ...

  3. Linux学习总结(5)——CentOS常用的目录文件操作命令

    CentOS常用的目录文件操作命令 一.路径操作的CentOS常用命令  cd pwd  NO1. 显示当前路径  [root@rehat root]# pwd  NO2. 返回用户主目录  [roo ...

  4. 如何去掉drwxr-xr-x@中的@符号Linux文件扩展信息

    如何去掉drwxr-xr-x@中的@符号Linux文件扩展信息ls -lart drwxrwxrwx@ 10 rlanffy staff 340B 3 6 2015 files-rwxrwxrwx@ ...

  5. Hibernate3中重复引用hbm文件错误信息记录

    Hibernate3中重复引用hbm文件错误信息记录. 八月 ::, ERROR - Context initialization failed org.springframework.beans.f ...

  6. Django中常用的那些模块路径

    Django中常用的那些模块路径 from django.shortcuts import HttpResponse, render, redirect from django import temp ...

  7. Linux中常用命令(文件与目录)

    1.pwd 查看当前目录(Print Working Directory) 2.cd 切换工作目录(Change Directory) (1)格式:cd [目录位置] 特殊目录: .当前目录 ..上一 ...

  8. 初识linux&常用命令&目录文件的浏览和管理

    Linux系统的主要用途:主要用于服器务器,特别是网络服务 Linux命令格式 命令   [选项]  [ 参数] 命令:告诉操作系统做什么,执行什么 选项:说明命令的运行方式(可以改变命令的功能).选 ...

  9. Linux中常用的查找文件的命令

    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索.这些是从网上找到的资料(参考资料1),因为有时很长时间不会用到,当要用的时候经常弄混了,所以放到这里方便使用. w ...

随机推荐

  1. Qt QTableView 表格内添加控件

    目录 Qt QTableView 表格内添加控件 1. QItemDelegate 2. setIndexWidget 3. setIndexWidget + setLayout Qt QTableV ...

  2. npm使用淘宝镜像源

    npm使用淘宝镜像源 单次使用 npm install koa --registry=https://registry.npm.taobao.org 永久使用 配置淘宝镜像源 npm config s ...

  3. kali下安装docker

    前期准备 物理机:win10 虚拟机:kali 2021 网络连接方式:桥接 一.简介 Vulhub: 是一个面向大众的开源漏洞靶场,无需docker知识,简单执行两条命令即可编译.运行一个完整的漏洞 ...

  4. zabbix监控SSL证书有效期

    想给公司网站加上证书的监控,发现agent无此监控项.科普之后发现需要自行添加脚本以及一些操作. 环境信息 系统版本: Ubuntu20.04 zabbix server版本:5.4 (这个自定义貌似 ...

  5. 学习打卡——CentOS 7安装

    本来今天是要学习redis的,但是redis官方又不支持在win下运行,windows版本目前都是微软官方在维护.redis最新版都已经更新到7.0了,windows却还是只有3.x版本.所以随性就去 ...

  6. VOC数据集可视化

    from gettext import find import os from xml.etree import ElementTree as ET import cv2 def drawBoxOnV ...

  7. jmeter并发设置的原理

    目录 简介 广义并发 绝对并发 简介 ​ 性能测试过程中是否需要进行同步定时器的设置,需要根据实际情况来考虑. ​ 举个栗子来讲是我们的双十一秒杀活动,这时候就必须实现请求数量达到一定数量后同时向服务 ...

  8. C++中 指针的指针是什么?指针的引用又是什么?你可能需要看看这篇文章

    关于变量的定义 我们都知道变量的定义包括一个基本数据类型(base type)和一组声明符,在同一条定义语句中,输入基本数据类型不同,但是声明符的形式却可以不同. //如:i是一个int的整数,a是一 ...

  9. 攻防世界-MISC:pure_color

    这是攻防世界高手进阶区的第六题,题目如下: 点击下载附件一,得到一张空白的png图片 用StegSolve打开,然后点击箭头(如下图所示) 多点击几次,即可得到flag 所以,这道题的flag如下: ...

  10. .NET LoongArch64 正式合并进入.NET

    国内自主的龙芯,在做龙芯技术生态就把 .NET 作为其中一部分考虑进去,这也将对接下来国内.NET应用场景充满了期待.通过dotnet/runtime 可以知道现在龙芯版本的 .NET 已经合并到.N ...