C# 笔记1 - 操作目录


最近一段时间准备花点闲散时间学学C#。坚信每门高级编程语言都差不多,不因此打算花时间从头学了。以先前学其它语言作为类比,打算简单用一下C#,然后就假装学会了。


目录

【案例部分】

给定绝对路径path,本节完成以下操作为例:

1.获取该目录下的所有文件

2.获取该目录下的所有子目录

3.获取该目录下的所有文件及其子目录(不包含子目录中的文件)

4.获取该目录所在的根目录(所在磁盘盘符)

5.获取该目录的上层目录名(文件夹名)

6.获取该目录的上层目录的全名(绝对路径)

【手册部分】

C# - 目录操作的相关方法(手册)


【附录】

关于文中print()的说明

  • 跳转到说明

part1 - C# 操作目录示例

using System;
using System.IO;
using static Ljc.Print;class OsPath
{public static void Main(){string path = @"C:\Users\李俊才\Desktop\filePath";string[] files = Directory.GetFiles(path);string[] dirs = Directory.GetDirectories(path);string[] files_sbupath = Directory.GetFileSystemEntries(path);string root = Directory.GetDirectoryRoot(path);DirectoryInfo parent_path = Directory.GetParent(path);print("-------------------------------------------------");print("该目录下的所有文件:");print(files);print("\n该目录下的所有子目录:");print(dirs);print("\n该目录下的所有文件及其子目录(不包含子目录中的文件):");print(files_sbupath);print("\n该目录的根目录(所在磁盘盘符)为:");print(root);print("\n该目录的上层目录名(文件夹名)为:");print(parent_path.Name);print("\n该目录的上层目录的全名(绝对路径)为:");print(parent_path.FullName);print("-------------------------------------------------");}
}

运行结果

"-------------------------------------------------"
"该目录下的所有文件:"
["C:\Users\李俊才\Desktop\filePath\CreateBlankExcel.java", "C:\Users\李俊才\Desktop\filePath\DCT.py", "C:\Users\李俊才\Desktop\filePath\GetAPI.class", "C:\Users\李俊才\Desktop\filePath\GetAPI.java", "C:\Users\李俊才\Desktop\filePath\painter.py", "C:\Users\李俊才\Desktop\filePath\PostAPI.java", "C:\Users\李俊才\Desktop\filePath\Untitled-1.py", "C:\Users\李俊 才\Desktop\filePath\绘图1.vsdx"]
"
该目录下的所有子目录:"
["C:\Users\李俊才\Desktop\filePath\125166232", "C:\Users\李俊才\Desktop\filePath\64516216wef", "C:\Users\李俊才\Desktop\filePath\Downloads"]
"
该目录下的所有文件及其子目录(不包含子目录中的文件):"
["C:\Users\李俊才\Desktop\filePath\125166232", "C:\Users\李俊才\Desktop\filePath\64516216wef", "C:\Users\李俊才\Desktop\filePath\CreateBlankExcel.java", "C:\Users\李俊才\Desktop\filePath\DCT.py", "C:\Users\李俊才\Desktop\filePath\Downloads", "C:\Users\李俊才\Desktop\filePath\GetAPI.class", "C:\Users\李俊才\Desktop\filePath\GetAPI.java", "C:\Users\李俊才\Desktop\filePath\painter.py", "C:\Users\李俊才\Desktop\filePath\PostAPI.java", "C:\Users\李俊才\Desktop\filePath\Untitled-1.py", "C:\Users\李俊才\Desktop\filePath\绘图1.vsdx"]
"
该目录的根目录(所在磁盘盘符)为:"
"C:\"
"
该目录的上层目录名(文件夹名)为:"
"Desktop"
"
该目录的上层目录的全名(绝对路径)为:"
"C:\Users\李俊才\Desktop"
"-------------------------------------------------"

part2 - C# 目录操作的相关方法(手册)


方法 功能 命名空间
CreateDirectory 在指定路径中创建所有目录和子目录,除非它们已经存在 Directory System.IO
Delete 从指定路径删除空目录 Directory System.IO
EnumerateDirectories 返回满足指定条件的目录完整名称的可枚举集合 Directory System.IO
EnumerateFiles 返回满足指定条件的完整文件名的可枚举集合 Directory System.IO
EnumerateFileSystemEntries 返回满足指定条件的文件系统项的可枚举集合 Directory System.IO
Exists 确定给定路径是否引用磁盘上的现有目录 Directory System.IO
GetCreationTime 获取目录的创建日期和时间 Directory System.IO
GetCreationTimeUtc 获取目录创建的日期和时间,其格式为协调通用时 (UTC) Directory System.IO
GetCurrentDirectory 获取应用程序的当前工作目录 Directory System.IO
GetDirectories 返回满足指定条件的子目录的名称 Directory System.IO
GetDirectoryRoot 返回指定路径的卷信息、根信息或两者同时返回 Directory System.IO
GetFiles 返回满足指定条件的文件的名称 Directory System.IO
GetFileSystemEntries 返回满足指定条件的所有文件和子目录的名称 Directory System.IO
GetLastAccessTime 返回上次访问指定文件或目录的日期和时间 Directory System.IO
GetLastAccessTimeUtc 返回上次访问指定文件或目录的日期和时间,其格式为协调通用时 (UTC) Directory System.IO
GetLastWriteTime 返回上次写入指定文件或目录的日期和时间 Directory System.IO
GetLastWriteTimeUtc 返回上次写入指定文件或目录的日期和时间,其格式为协调通用时 (UTC) Directory System.IO
GetLogicalDrives 检索此计算机上格式为“:\”的逻辑驱动器的名称 Directory System.IO
GetParent 检索指定路径的父目录,包括绝对路径和相对路径 Directory System.IO
Move 将文件或目录及其内容移到新位置 Directory System.IO
SetCreationTime 为指定的文件或目录设置创建日期和时间 Directory System.IO
SetCreationTimeUtc 设置指定文件或目录的创建日期和时间,其格式为协调通用时 (UTC) Directory System.IO
SetCurrentDirectory 将应用程序的当前工作目录设置为指定的目录 Directory System.IO
SetLastAccessTime 设置上次访问指定文件或目录的日期和时间 Directory System.IO
SetLastAccessTimeUtc 设置上次访问指定文件或目录的日期和时间,其格式为协调通用时 (UTC) Directory System.IO
SetLastWriteTime 设置上次写入目录的日期和时间 Directory System.IO
SetLastWriteTimeUtc 设置上次写入某个目录的日期和时间,其格式为协调通用时 (UTC) Directory System.IO

【关于文中print()的说明】

在C#中一般使用Console.WriteLine()函数输出到控制台,它在使用时和很多语言一样有些不尽如人意的地方。首先是写起来太长,麻烦。然后它无法很直观地展示某些特定地数据结构,

  • 比如我们用其输出一个String Array:
System.String[]
  • 或者输出一个ArrayList:
System.Collections.ArrayList

无法看到内部地元素结构
如果要看到内部元素则需要使用如forforeach等语句进行遍历打印之。但如果内层元素还存在数组、数组列表、字典、队列等等类型的元素,则还需要进行迭代使用循环遍历。这都将大大降低开发效率。
而在开发和调试时:

  • 我们实际像看到的更多的应该比如这样子(写过python人都习以为常的样子):
["1","2","3","A","B","C","D"]
  • 或者这样子:
[["1",2,'A',"WKJ"],[1,6,9,7,10],[6,7,4,"@"],["HELLOW","WORLD"]]
  • 又或者对于散列表结构,则呈现出如这样子:
{"张":"三", "李":"四", "王":"五", "赵":"六", "钱":"七" }

等等。。

现对于C#中的基础结构在类中重载了很多个不同类型的print()方法。如char、String、int、double、float、long、short、uint、bool等等。也可以使用一维数组Array,或者包含以上以上结构的一维数组列表ArrayList和任意多维ArrayList。

下文用到实现一个类似于python中的print()方法:

  • 请参考博文:https://blog.csdn.net/qq_28550263/article/details/114198927

C# 笔记1 - 操作目录相关推荐

  1. 【FFmpeg】FFmpeg中操作目录、文件的接口

    1.简述 在学习FFmpeg源码中的例子时,发现FFmpeg封装了操作目录和文件的接口.这篇博客把这些接口罗列出来,作为笔记简单记录下. 2.接口列表 打开目录,准备读取目录信息 int avio_o ...

  2. 3.Lucene3.x API分析,Director 索引操作目录,Document,分词器

     1  Lucene卡发包结构分析 包名 功能 org.apache.lucene.analysis Analysis提供自带的各种Analyzer org.apache.lucene.colla ...

  3. memcached高速缓存学习笔记002---telnet操作memcached

    memcached高速缓存学习笔记002---telnet操作memcached 停止memcached  memcached.exe  -d stop 停止 memcached.exe -p 112 ...

  4. 操作系统概念学习笔记 4 操作系统结构和操作简述

    操作系统概念学习笔记 4 操作系统结构和操作简述 操作系统结构 多道程序设计 多道程序设计指的是允许多个程序同时进入一个计算机系统的主存储器并启动进行计算的方法.也就是说,计算机内存中可以同时存放多道 ...

  5. Linux系统chmod误操作目录权限恢复方法

    Linux系统chmod误操作目录权限恢复方法 - 云+社区 - 腾讯云 Linux 中,如果意外误操作将根目录目录权限批量设置,比如 chmod -R 777 / ,系统中的大部分服务以及命令将无法 ...

  6. Apifox 学习笔记 - 前置操作

    Apifox 学习笔记 - 前置操作 设置 Content-Length 参考资料 设置 Content-Length Content-Type: application/x-www-form-url ...

  7. 《王道计算机组成原理》学习笔记和总目录导航

    <王道计算机组成原理>学习笔记和总目录导读 本篇文章是阅读和学习<王道计算机组成原理>后总结的理论知识笔记导航,专门用于遗忘后复习 下面的文章是我在学习了<王道计算机组成 ...

  8. 易语言打开C盘文件,易语言教程磁盘操作目录相关

    目录操作是我们常常用到的命令:包括取运行目录,创建目录,取当前目录,改变目录,删除目录,浏览文件夹. 目录操作是我们常常用到的命令 系统核心支持库---磁盘操作(目录) 新命令 1.取运行目录()-- ...

  9. php 文件目录处理,PHP目录处理—浏览目录以及操作目录

    PHP目录处理-浏览目录以及操作目录 在本篇文章中,我们主要讲述关于目录处理的浏览目录以及操作目录,就像文件处理一样的读取,写入操作,目录处理跟文件处理类似,但是操作方法可能有点区别. 那么上一篇文章 ...

最新文章

  1. CVPR 2022 | ConvNeXt - FAIR再探纯卷积结构的极限(优于Transformer)
  2. 微信JSApi支付~微信支付代理模式的实现(原创)
  3. python3.5.0下载-Python for Linux
  4. 第二次数据库作业--gui
  5. ESP8266的一个小问题
  6. 用稳压管保护单片机引脚_零基础入门单片机(2)学会控制IO引脚你就入门啦
  7. JRebel : java.lang.OutOfMemoryError: PermGen space 异常
  8. 一天一道算法题--5.30---递归
  9. Taro+react开发(36)每一个节点要一个view包裹
  10. 构建之法----软件工程简介
  11. 人从众!五一假期全国旅游收入破千亿 你贡献了多少?
  12. 95-240-060-源码-state-状态生存时间(TTL)
  13. java实例属性_Java 静态属性与实例属性的初始化
  14. php如何从获取数据,如何从​​获取值并保存到php的数据库
  15. 资源分享·病毒样本下载资源分享
  16. 开源音乐下载神器XMusicDownloader更新,支持歌单一键下载,支持无损音乐
  17. 微信原版提示音_抖音阿豆微信提示音修改app-抖音很火的微信提示音阿豆铃声软件v1.0...
  18. 美团外卖订单小票打印规范
  19. c语言中num =10,num/100%10 这是什么意思求详细的计算逻辑
  20. ThinkPad平板电脑在定价上还存在的一个问题是

热门文章

  1. 【动态规划 回文串11】LeetCode 516. Longest Palindromic Subsequence
  2. 【Spark】快速简介
  3. matlab作图显示中文正常,保存图片中文乱码
  4. python 求点集的距离矩阵
  5. Numpy根据某一列进行排序
  6. InternalError: Blas GEMM launch failed : a.shape=(100, 784), b.shape=(784, 10), m=100, n=10...问题解决办法
  7. 【软件project】之第五、六章总结
  8. static{}语句块详解
  9. Xcode插件失效解决办法
  10. linux下mysql的忘记root密码的解决办法