C#中常用的目录|文件|路径信息操作
更新记录
本文迁移自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#中常用的目录|文件|路径信息操作的更多相关文章
- python找递归目录中文件,并移动到一个单独文件夹中,同时记录原始文件路径信息
运营那边有个需求. 下载了一批视频文件,由于当时下载的时候陆陆续续创建了很多文件夹,并且,每个文件夹下面还有子文件夹以及视频文件,子文件夹下面有视频文件或者文件夹 现在因为需要转码,转码软件只能对单个 ...
- Nginx中的root&alias文件路径及索引目录配置详解
这篇文章主要介绍了Nginx中的root&alias文件路径及索引目录配置,顺带讲解了root和alias命令的用法,需要的朋友可以参考下 root&alias文件路径配置ng ...
- Linux学习总结(5)——CentOS常用的目录文件操作命令
CentOS常用的目录文件操作命令 一.路径操作的CentOS常用命令 cd pwd NO1. 显示当前路径 [root@rehat root]# pwd NO2. 返回用户主目录 [roo ...
- 如何去掉drwxr-xr-x@中的@符号Linux文件扩展信息
如何去掉drwxr-xr-x@中的@符号Linux文件扩展信息ls -lart drwxrwxrwx@ 10 rlanffy staff 340B 3 6 2015 files-rwxrwxrwx@ ...
- Hibernate3中重复引用hbm文件错误信息记录
Hibernate3中重复引用hbm文件错误信息记录. 八月 ::, ERROR - Context initialization failed org.springframework.beans.f ...
- Django中常用的那些模块路径
Django中常用的那些模块路径 from django.shortcuts import HttpResponse, render, redirect from django import temp ...
- Linux中常用命令(文件与目录)
1.pwd 查看当前目录(Print Working Directory) 2.cd 切换工作目录(Change Directory) (1)格式:cd [目录位置] 特殊目录: .当前目录 ..上一 ...
- 初识linux&常用命令&目录文件的浏览和管理
Linux系统的主要用途:主要用于服器务器,特别是网络服务 Linux命令格式 命令 [选项] [ 参数] 命令:告诉操作系统做什么,执行什么 选项:说明命令的运行方式(可以改变命令的功能).选 ...
- Linux中常用的查找文件的命令
我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索.这些是从网上找到的资料(参考资料1),因为有时很长时间不会用到,当要用的时候经常弄混了,所以放到这里方便使用. w ...
随机推荐
- MFC---文档与视图结构
文档与视图结构 文档.视图的关系,是一对多的映射,一个文档可以对应多个视图,而一个视图只能对应一个文档.例如,一个.html文件,可以用记事本打开,也可以用浏览器打开,这里的.html文件就是文档,记 ...
- SpringMVC-组件分析之视图解析器(prefix,suffix)
SpringMVC的默认组件都是在DispatcherServlet.properties配置文件中配置的: spring-webmvc->org/springframewrok/web/ser ...
- 我们可以定向调度某个pod在某个node上进行创建
集群环境:1.k8s用的是二进制方式安装 2.操作系统是linux (centos)3.操作系统版本为 7.2/7.4/7.94.k8s的应用管理.node管理.pod管理等用rancher.k8s令 ...
- Quartz 使用记录
Quartz 使用记录 官网 https://www.quartz-scheduler.org/ 参考文档 Quartz 2.3.0 什么是 Quartz? 官方描述: Quartz is a ric ...
- 前端vue之属性指令、style和class、条件渲染、列表渲染、事件处理、数据双向绑定、表单控制、v-model进阶
今日内容概要 属性指令 style和class 条件渲染 列表渲染 事件处理 数据的双向绑定 v-model进阶 购物车案例 内容详细 1.属性指令 <!DOCTYPE html> < ...
- ThinkPHP3.2.3反序列化链子分析
前言 目前官方已经不再维护ThinkPHP3.2.3,本文仅对ThinkPHP3.2.3反序列化链子进行复现,如有纰漏,还望指正. 环境介绍 MAMP pro PhpStorm Xdebug 利用条件 ...
- 2021.11.16 P2375 [NOI2014] 动物园(EXKMP+差分)
2021.11.16 P2375 [NOI2014] 动物园(EXKMP+差分) https://www.luogu.com.cn/problem/P2375 题意: PS:这道神题的背景让人疑惑,重 ...
- 2021.11.05 eleveni的水省选题的记录
2021.11.05 eleveni的水省选题的记录 因为eleveni比较菜,但是eleveni不想写绿题(总不能说是被绿题虐得不想写),eleveni决定继续水noip原题. --实际上菜菜的el ...
- python基础练习题(题目 画菱形)
day15 --------------------------------------------------------------- 实例022:画菱形 题目 打印出如下图案(菱形):. * * ...
- 国产化之 .NET Core 操作达梦数据库DM8的两种方式
背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟,数据库使用达梦V8,CPU平台的范围包括x64.龙芯.飞腾.鲲鹏等.考虑到这些基础产品对.NET的支持,最终选择了.NET Core ...