Welcome To 木影**凌翔 的博|

木影**凌翔

园龄:2年11个月粉丝:1关注:0

IO操作

IO基础概念

lO操作:文件/文件夹 操作与读写。

文件夹: 用来管理计算机文件的,每一个文件夹对应一块磁盘空间,它提供了指向对应空间的地址它没有扩展名,也就不像文件的格式用扩展名来标识。

文件: 一个具有符号的一组相关联元素的有序序列。文件可以包含范围非常广泛的内容。系统和用户都可以将具有一定独立功能的程序模块、一组数据或一组文字命名为一个文件,它具有永久存储。

:是个字节序列,可用于对后备存储进行读取写入操作,后备存储可以是多个存储媒介之一(例如,磁盘或内存)。

Stream:支持读取和写入字节。所有表示流的类都继承自Stream类。

流涉及三个基本操作:

  • 读取 - 将数据从流传输到数据结构 (如字节数组) 中。
  • 写入- 将数据从数据源传输到流。
  • 查找 - 对流中的当前位置进行查询和修改。

IO命名空间常用类

System.lO命名空间里,常用的类:

  1. File
  2. Filelnfo.Directory
  3. Directorylnfo
  4. Path
  5. StreamReader
  6. StreamWriterFileStream
  7. MemoryStream
  8. BufferedStream
  9. BinaryReader
  10. BinaryWriter
  11. StringReader
  12. StringWriter
  13. Stream
  14. TextReader
  15. TextWriter

image-20230712161753286

1.文件路径操作:Path类简介

C#中的Path类提供了许多用于处理文件路径的方法。其中最常用的方法是GetFileName、GetFileNameWithoutExtension和GetDirectoryName。这些方法分别返回路径的文件名、不带扩展名的文件名以及文件夹目录的名称。此外,Path类还提供了GetFullPath方法,可以获取完整的文件路径。

在使用Path类时,需要先在路径的头部加上@符号,例如@C:\fuck.txt 。这样可以确保路径被正确解析并返回正确的结果。

除了常用的方法外,Path类还提供了一些其他有用的方法,例如CreateDirectory、Delete、Move等,可以用来创建、删除或移动文件或文件夹。同时,Path类还支持正则表达式,可以使用Regex类来进行复杂的路径匹配和处理。

总之,C#中的Path类是一个非常实用的工具,可以帮助我们方便地处理文件路径并进行各种操作。

C#中的Path类提供了一组方法,用于处理文件路径和目录。以下是一些常见的用法:

  1. 创建文件路径字符串:使用CreateDirectory、CreateFile或Combine方法创建一个文件路径字符串。例如:string path = Path.Combine(“C:\Users\JohnDoe”, “Documents”, “myfile.txt”);
  2. 获取当前工作目录:使用CurrentDirectory属性返回当前工作目录的路径。
  3. 获取完整路径:使用FullName属性返回完整路径,包括驱动器和文件夹名称。
  4. 获取只读文件路径:使用IsReadOnly属性检查文件是否为只读模式。
  5. 获取隐藏文件路径:使用IsHidden属性检查文件是否为隐藏模式。
  6. 获取系统文件路径:使用SystemFiles属性返回包含系统文件的目录列表。
  7. 获取扩展名:使用Extension属性返回文件扩展名。
  8. 获取文件名:使用FileName属性返回文件名。
  9. 获取文件大小:使用Length属性返回文件的大小(以字节为单位)。
  10. 获取文件类型:使用Type属性返回文件的类型(如文本文件、图像文件等)。
  11. 删除文件:使用Delete方法删除指定路径的文件。
  12. 移动文件:使用Move方法将文件从一个位置移动到另一个位置。
  13. 复制文件:使用Copy方法将文件从一个位置复制到另一个位置。
  14. 列出目录内容:使用EnumerateDirectories和EnumerateFiles方法分别列出指定目录下的所有子目录和所有文件。

总之,Path类提供了许多有用的方法和属性,可以方便地处理文件路径和目录。

定义 string filePath =@"E:/project/test/20180322.jpg";

方法 备注 效果
System.IO.Path.ChangeExtension(filePath, "txt") 更改路径字符串的扩展名 E:/project/test/20180322.txt
System.IO.Path.GetDirectoryName(filePath) 返回指定路径字符串的目录信息 E:/project/test/
System.IO.Path.GetExtension(filePath) 返回指定的路径字符串的扩展名 .jpg
System.IO.Path.GetFileName(filePath) 返回指定路径字符串的文件名和扩展名 20180322.jpg
System.IO.Path.GetFileNameWithoutExtension(filePath) 返回不具有扩展名的指定路径字符串的文件名 20180322
System.IO.Path.GetPathRoot(filePath) 获取指定路径的根目录信息 E:/
System.IO.Path.GetRandomFileName() 返回随机文件夹名或文件名 ct2h5b2h.sed
System.IO.Path.GetTempFileName() 创建唯一命名的零字节的临时文件并返回其绝对路径 C:/Documents and Settings/Randy/Local Settings/Temp/tmpAD.tmp
System.IO.Path.GetTempPath() 返回当前系统的临时文件夹的路径 C:/Documents and Settings/Randy/Local Settings/Temp/
System.IO.Path.HasExtension(filePath) 返回路径是否包括文件扩展名 True
System.IO.Path.IsPathRooted(filePath) 返回路径是绝对路径还是相对路径 Ture
System.IO.Path.Combine(@ "c: ", "b.txt ") 返回合并后的路径 C:/b.txt
System.IO.Path.GetFullPath("20180322.jpg") 查找文件并返回其绝对路径 E:/project/test/20180322.jpg

2.文件夹操作:DirectoryInfo类与Directory类操作

Directory类位于System.IO命名空间下,主要用来操作文件夹,常用操作有判断文件夹是否存在、创建文件夹、删除文件夹、剪切文件夹、获取文件夹下的全部或指定格式文件

DirectoryInfo类是一个密封类,它可以用来创建、移动、枚举目录和子目录。

Directory

创建一个文件夹;如果文件夹已经存在,就什么都不干:Directory.CreateDirectory

例:Directory.CreateDirectory(@"c:\a");这里是在C盘创建一个名为a的文件夹。

删除一个文件夹:Directory.Delete

默认的第二个参数是false,只能删除空目录;第二个参数为true的时候就可以删除文件夹连同文件夹里的所有文件。

例:Directory.Delete(@"c:\a",true);这里是删除C盘名为a文件夹。

移动文件夹的位置:Directory.Move

例:Directory.Move(@"c:\a", @"d:\new");将C盘a文件夹移动到d盘变成名为new的文件夹。

判断文件夹是否存在,返回布尔类型:Directory.Exists

例:Directory.Exists(@"c:\a");判断C盘名为a的文件夹是否存在。

获取目录下的所有文件的路径,返回到字符串数组:Directory.GetFiles

例:第二个参数是筛选出只有jpg格式的文件,如果不填第二个参数,则返回全部文件。
string[] path=Directory.GetFiles(@"c:\a","*.jpg");遍历C盘a文件夹里面jpg格式的文件路径,并且保存在path数组里面。

获取目录下所有文件夹的路径,返回字符串数组:Directory.GetDirectories

例:string[] path = Directory.GetDirectories(@"c:\a");遍历C盘a文件夹下所有的文件夹路径,并保存到path数组里面。

DirectoryInfo

DirectoryInfo类包括4个属性,可以用来获取目录的名称、父目录等。

  • Exists:判断指定目录是否存在。如果存在,则返回true,否则返回false。

  • Name:获取目录的名称。

  • Parent“获取指定子目录的父目录。

  • Root:获取路径的根部分。

    DirectoryInfo类还包括了以下9个属性,它们是从FileSystemInfo类继承而来。

  • Extension属性:获取文件扩展名部分。

  • FullName属性:获取完整目录。

  • Attributes属性:获取或设置当前目录的FileAttributes。

  • CreationTime属性:获取或设置当前目录的创建时间。

  • CreationTimeUtc属性:获取或设置当前目录的创建时间,其格式为协调通用时间。

  • LastAccessTime属性:获取或设置上次访问当前目录的时间。

  • LastAccessTimeUtc属性:获取或设置上次访问当前目录的时间,其格式为协调通用时间。

  • LastWriteTime属性:获取或设置上次写入当前目录的时间。

  • LastWriteTimeUtc属性:获取或设置上次写入当前目录的时间,其格式为协调通用时间。

  • DirectoryInfo类的实例方法说明

  • Create():创建目录。

  • GetDirectories():获取当前目录的子目录。

  • CreateSubdirectory():在指定路径中创建一个或多个子目录。

  • GetFiles():获取当前目录的文件列表。

  • Delete():删除指定的目录及其内容。

  • GetFileSystemInfos():获取当前目录的子目录和文件列表。

  • MoveTo():将指定目录及其内容移到新位置。

其中,Create()、Delete()和MoveTo()方法用来操作目录,它们依次可以用来创建、删除和移动目录。MoveTo()方法用来移动目录,它首先创建一个新目录(包括该目录的内容),然后再将被移动的目录删除。

Directory类和DirectoryInfo类的区别

  • Directory是公用的静态类,是公开建立、移动和全面列举目录和子目录的静态方法。
  • DirectoryInfo是实例类,是公开建立、移动和全面列举目录内和子目录的容执行个体 (Instance) 方法。

3.文件操作:File、FileInfo类

File :提供用于创建复制删除移动打开文件的静态方法,并协助创建FileStream对象。

Filelnfo :提供用于创建复制删除移动打开文件的实例方法,并协助创建FileStream 对象。

FileMode:打开文件的方式 Create CreateNew Append Open OpenOrCreate

FlleAccess: 文件访问权限 Read Write ReadWrite

创建  复制  删除  移动 文件流 写入流 读取

打开  追加  写入  读取

File类包含用于将内容写入文件的4种方法:

  • WriteAllText():创建文本,将字符串写入该文件,关闭文件
  • AppendAllText():将字符串附加到已有的文件
  • WriteAllLines():创建文件,将字符串数组写入该文件,关闭文件
  • WriteAllBytes():创建文件,将字节数组写入该文件,关闭文件

File类也包含用于从文件读取内容的3种方法:

  • ReadAllText():打开文件,读取该文件中的所有文本并放入字符串中,关闭文件
  • ReadAllLines():打开文件,读取该文件中的所有文本并放入字符串数组中,关闭文件
  • ReadAllBytes():打开文件,读取该文件中的所有文本并放入字节数组中,关闭文件

本文作者:木影**凌翔

本文链接:https://www.cnblogs.com/MuyingBlog/p/17624874.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   木影**凌翔  阅读(26)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 就让这大雨全都落下 (Live版) 汪苏泷,容祖儿
  2. 2 Letting Go (Live版) 吉克隽逸,汪苏泷
Letting Go (Live版) - 吉克隽逸,汪苏泷
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

原唱 : 蔡健雅

词曲 : 蔡健雅

编曲 : GavinRiFF

制作人 : 汪苏泷/金若晨

和声编写 : 汪苏泷/金若晨/徐杰/姜糖Shirley

和声 : 徐杰/姜糖Shirley

音乐总监 : 彭程@金牛studio

音响总监 : 何飚

乐队队长&键盘1:铃铛@牛班NEWBAND

键盘2:叶霖@牛班NEWBAND

吉他1:黄仲贤@牛班NEWBAND

吉他2:倪伟恩@牛班NEWBAND

贝斯:宣一亨@牛班NEWBAND

鼓:Chris Trzcinski@牛班NEWBAND

和音:张恋歌 鱼椒盐 孟呈真 叶俊

和音编写:张恋歌

PGM:章谋杰

音乐混音:林梦洋

Letting go

我终于舍得为你放开手

因为爱你爱到我心痛

但你却不懂

这是一封离别信

写下我该离开的原因

我在你生命中扮演的角色太模糊了

对我曾忽冷忽热

我到底是情人还是朋友

爱你是否不该太认真

That’s why

I'm letting go

我终于舍得为你放开手

因为爱你爱到我心痛

但你却不懂

Letting go

你对一切都软弱与怠惰

让人怀疑你是否爱过我 真的爱过我

Letting go

Letting go

Letting go

你是呼吸的空气

脱离不了的地心引力

你在我生命中 曾经是我存在的原因

也许就像他们说

爱情只会让人变愚蠢

自作多情 爱得太天真

That’s why

I’m letting go

我终于舍得为你放开手

因为爱你爱到我心痛

但你却不懂

Letting go

你对一切都软弱与怠惰

让人怀疑你是否爱过我 真的爱过我

为你再也找不到借口

That’s when we should let it go

That’s when we should let it go

在夜深人静里想着

心不安 却越沸腾

我无助 我无助 好想哭 好想哭

我找不到退路

在夜深人静里写着

心慢慢 就越变冷(心不安 却越沸腾)

我不恨 我不恨 也不哭 也不哭

我的眼泪 早已哭干了

Coz I’m letting go

我终于舍得为你放开手

因为爱你爱到我心痛

但你却不懂

Letting go

你对一切都软弱与怠惰

让人怀疑你是否爱过我 真的爱过我

Letting go

你对一切都软弱与怠惰

让人怀疑你是否爱过我

That’s when we should let it go

That’s when we should let it go

That’s when we should let it go

That’s when we should let it go