【CSharp实例】文件基本操作
前言
我记得我之前的博客是写过C#
实例相关的文章,但是考虑到过于琐碎,我并没有那么多时间,所以指拿出来文件操作的部分来记录,因为对于程序来说,输入和输出的使用频率和重要性会更高一些。
本篇内容参考自 互联网,哔哩哔哩相关视频,《C#开发实例》以及本人经验
获取文件基本信息
获取文件的大小
方法说明
获取文件大小,需要使用File
类的Open
方法开打开指定的文件,然后使用FileStream
类的Length
属性获取文件的长度。
File
类的Open
方法File
类的Open
根据传入的文件路径,获取其FileStream
并返回,函数签名如下:1
2
3public static FileStream Open(string path, FileMode mode, FileAccess access, FileShare share);
public static FileStream Open(string path, FileMode mode, FileAccess access);
public static FileStream Open(string path, FileMode mode);path
:文件路径mode
:FileMode
枚举值之一,用于指定在文件不存在时或者其他情况的相关操作。枚举值 说明 CreateNew = 1
指定操作系统创建一个新的文件 Create = 2
同上,如果文件已经存在,则将其覆盖 Open = 3
指定操作系统打开现有文件 OpenOrCreate = 4
指定操作系统打开文件(如果文件存在),否则,创建新文件 Truncate = 5
指定操作系统应打开现有文件。 当打开文件时,被截断其大小为零字节。 Append = 6
打开现有文件并查找到文件尾,或者创建新文件并打开。 返回值:返回指定路径文件的
FileStream
,具有读/写访问权限并且不共享。
FileStream
类的Length
属性其返回值以字节为单位,函数签名如下:
1
public override long Length { get; }
和文件相关的操作,需要引入命名空间
System.IO
代码示例
1 | OpenFileDialog openFileDialog = new OpenFileDialog(); |
获取文件拓展名
方法说明
获取文件拓展名主要是在字符串上进行操作,截断最后的.xxx
返回,需要使用如下函数签名:
1 | public String Substring(int startIndex, int length); |
startIndex
:子字符串的起始字符位置length
:要截取的字符数- 返回值:截取的字符串
代码示例
1 | OpenFileDialog openFileDialog = new OpenFileDialog(); |
获取文件创建时间
方法说明
需要使用FileInfo
类,该类型主要提供创建,复制,删除,移动和打开文件的实例方法。函数签名如下:
1 | public DateTime CreationTime { get; set; } |
代码示例
1 | OpenFileDialog openFileDialog = new OpenFileDialog(); |
获取文件最后一次修改时间
方法说明
同样的需要使用到FileInfo
类的LastWriteTime
属性,函数签名如下:
1 | public DateTime LastWriteTime { get; set; } |
代码示例
1 | OpenFileDialog openFileDialog = new OpenFileDialog(); |
获取文件名中禁止使用的字符
在 Win 系统中创建文件时,存在部分非法字符,系统会提示错误,获取非法字符有哪些是本实例要做的。
方法说明
主要使用到了Path
类的GetInvalidFileNameChars
方法,其函数签名如下:
1 | public static char[] GetInvalidFileNameChars(); |
- 返回值:
char
类型的数组,包含所有非法字符
代码示例:
1 | foreach(char c in Path.GetInvalidFileNameChars()) |
文件的创建和删除
创建和删除文件
方法说明
使用到了File
类的Create
和Delete
方法:
File
类的Create
方法,函数签名如下:1
public static FileStream Create(string path);
path
:文件路径和名称- 返回值:
FileStream
类,可以对路径文件进行读写
如果路径文件存在,该方法会覆盖文件创建新文件
File
类的Delete
方法,函数签名如下:1
public static void Delete(string path);
path
:指定路径文件
代码示例
1 | string filename; |
生成随机文件名或者文件夹名
方法说明
需要用到**Guid
(全局唯一标识符)**类的NewGuid
方法,其函数签名如下:
1 | public static Guid NewGuid(); |
全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度为128位的数字标识符。GUID主要用于在拥有多个节点、多台计算机的网络或系统中。在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。GUID 的总数达到了 2^128(3.4×10^38)个,所以随机生成两个相同GUID的可能性非常小,但并不为0。所以,用于生成GUID的算法通常都加入了非随机的参数(如时间),以保证这种重复的情况不会发生。
代码示例
1 | //创建文件 |
建立临时文件
当用户在程序中新建一个文件时,但是尚未保存和命名时,所有建立的文件都是保存在内存中的,显然这样做是很危险的。如果突然死机或者其他原因造成了程序在未保存文件之前就关闭,那么将损失严重。如果在文件建立的同时在就磁盘中存储数据,将不会造成如上损失。这个时候就需要创建临时文件来保存数据。
方法说明
需要先使用Path
类的GetTempFileName
方法获得临时文件名称,然后使用FileInfo
类的AppendText
方法向临时文件写入数据。
===============
待更新……’