C# 笔记1 - 操作目录

简介: C# 笔记1 - 操作目录

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()方法:


目录
相关文章
|
1月前
|
C#
C# 文件操作(全部) 追加、拷贝、删除、移动文件、创建目录
C# 文件操作(全部) 追加、拷贝、删除、移动文件、创建目录
23 0
|
7月前
|
C# 数据库 Windows
C# OOP程序设计目录
C# OOP程序设计目录
22 0
|
3月前
|
C# Python
C# 笔记3 - 重载一系列像python那样的print()方法
C# 笔记3 - 重载一系列像python那样的print()方法
29 1
|
3月前
|
存储 C# C++
C# 笔记2 - 数组、集合与与文本文件处理
C# 笔记2 - 数组、集合与与文本文件处理
46 0
|
10月前
|
XML 开发框架 JSON
【C#技术相关合集】目录导航
【C#技术相关合集】目录导航
45 0
|
10月前
|
存储 网络协议 Java
C# 快速入门笔记
C# 快速入门笔记
C# 快速入门笔记
|
C# 开发工具
C#滑动拼图验证码实现笔记
C# 是一个现代的、通用的、面向对象的编程语言,它是由微软(Microsoft)开发的,由 Ecma 和 ISO 核准认可的。突发奇想,动手开发一个C#滑动拼图验证码,下面是我开发过程的记录。
C#滑动拼图验证码实现笔记
|
SQL 开发框架 算法
【读书笔记】《Effective C#》50条建议笔记整理
对《Effective C#:改善C#代码的50个有效方法》一书整理的读书笔记。
28075 5
【读书笔记】《Effective C#》50条建议笔记整理
C#获取应用程序所在路径的父级目录
C#获取应用程序所在路径的父级目录
C#编程-116:获取指定目录下的所有文件及文件夹
C#编程-116:获取指定目录下的所有文件及文件夹
522 0