更新记录

本文迁移自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. 前端性能优化之js,css调用优化

    规则1:减少HTTP请求     把多个JS请求合并为一个JS请求,把多个CSS请求合并为一个CSS请求.从而减少从客户端向服务器端的请求数.     规则3:添加Expires头     用http ...

  2. Day 007:PAT训练--1108 Finding Average (20 分)

    话不多说: 该题要求将给定的所有数分为两类,其中这两类的个数差距最小,且这两类分别的和差距最大. 可以发现,针对第一个要求,个数差距最小,当给定个数为偶数时,二分即差距为0,最小:若给定个数为奇数时, ...

  3. 为什么HttpContextAccessor要这么设计?

    前言 周五在群里面有小伙伴问,ASP.NET Core这个HttpContextAccessor为什么改成了这个样子? 在印象中,这已经是第三次遇到有小伙伴问这个问题了,特意来写一篇记录,来回答一下这 ...

  4. 【论文阅读】ConvNeXt:A ConvNet for the 2020s 新时代卷积网络

    一.ConvNext Highlight 核心宗旨:基于ResNet-50的结构,参考Swin-Transformer的思想进行现代化改造,知道卷机模型超过trans-based方法的SOTA效果. ...

  5. XCTF练习题---WEB---simple_js

    XCTF练习题---WEB---simple_js flag:Cyberpeace{786OsErtk12} 解题步骤: 1.观察题目,打开场景 2.打开该场景后发现是一个登录界面,随便输入一个密码, ...

  6. [STL] map 映射

  7. [AcWing 770] 单词替换

    点击查看代码 #include<iostream> #include<sstream> using namespace std; string s, a ,b; int mai ...

  8. MAC 地址为什么不需要全球唯一

    MAC 地址(Media access control address)是分配给网络接口控制器(Network interface controller, NIC)的唯一标识符,它会在网络段中充当网络 ...

  9. SpringCloud Gateway 漏洞分析 (CVE-2022-22947)

    背景 SpringCloud 是Spring提供的微服务实现框架,其中包含网关.配置中心和注册中心等内容,网关的第一代实现为zuul,第二代实现为Gateway,提供了更好的性能和特性. 网关可以提供 ...

  10. 太极限了,JDK的这个BUG都能被我踩到

    hello,大家好呀,我是小楼. 之前遇到个文件监听变更的问题,刚好这周末有空研究了一番,整理出来分享给大家. 从一次故障说起 我们还是从故障说起,这样更加贴近实际,也能让大家更快速理解背景. 有一个 ...