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 |
在C#中一般使用Console.WriteLine()函数输出到控制台,它在使用时和很多语言一样有些不尽如人意的地方。首先是写起来太长,麻烦。然后它无法很直观地展示某些特定地数据结构,
- 比如我们用其输出一个String Array:
System.String[]
- 或者输出一个ArrayList:
System.Collections.ArrayList
无法看到内部地元素结构。
如果要看到内部元素则需要使用如for、foreach等语句进行遍历打印之。但如果内层元素还存在数组、数组列表、字典、队列等等类型的元素,则还需要进行迭代使用循环遍历。这都将大大降低开发效率。
而在开发和调试时:
- 我们实际像看到的更多的应该比如这样子(写过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()方法:
版权声明:本文为qq_28550263原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。