File类Path类Directory类常用方法-附绝对及相对地址

深入理解C#中的IO操作:File类的详解 File类位于System.IO命名空间中,它提供了静态方法,用于处理文件系统。这些方法可以用来读取、写入、创建、复制、移动和删除文件。由于File类是静态的,因此我们不需要创建它的实例就可以使用它的方法。File类是C#中进行文件操作的重要工具。通过掌握File类的常用方法,我们可以方便地进行文件的创建、读取、写入、复制、移动和删除等操作。在使用File类时,要注意处理异常,并合理地管理文件流,以确保文件操作的安全和高效。 阅读详情

File类
命名空间:Using System.IO
File英文翻译:文件,档案
是一个静态类
常用方法:File.Create(string fileName);
直接输入FileName则直接在debug文件下生成.
请注意:如果没有文件夹的话是会提示找不到路径的.及不会自动创建文件夹

文件路径分为绝对路径和相对路径。完整描述文件位置的路径就是绝对路径,相对于目标的位置就是相对路径。
绝对地址:直接在string fileName处输入文件名称则直接在程序运行处生成文件.
当路径中文件全名前加上一个.\
则是相同的意思
图片不容易上传,附上代码及错误信息
代码:
.\

File.Create(@".\1\2.txt");

错误提示:
未能找到路径“E:\vs2013学习-言之命至\19期\Test\ConsoleApplication1\bin\Debug\1\2.txt”的一部分。
报错原因是没有1文件夹,但是.\于直接写文件名作用相同,表示当前目录

..\

File.Create(@"..\1\2.txt");

错误提示:
未能找到路径“E:\vs2013学习-言之命至\19期\Test\ConsoleApplication1\bin\1\2.txt”的一部分。
结论:表示父目录

…\

File.Create(@"...\1\2.txt");

错误提示:
未能找到路径“E:\vs2013学习-言之命至\19期\Test\ConsoleApplication1\bin\1\2.txt”的一部分
结论:错误提示是和..\一样的,最多是1个点和两个点的区别

….\

File.Create(@"..\..\1\2.txt");

错误提示:未能找到路径“E:\vs2013学习-言之命至\19期\Test\ConsoleApplication1\1\2.txt”的一部分。
结论:父父目录..

File常用方法:
File.AppendAllText(“file name”,string txt);
官方注解:打开一个文件,向其中追加指定的字符串,然后关闭该文件,如果文件不存在,此方法创建一个文件,将指定的字符串写入文件,然后关闭该文件
.请注意其中的判断信息

public static void AppendAllText(string path, string contents)
        {
            if (path == null)
            {
                throw new ArgumentNullException("path");
            }
            if (path.Length == 0)
            {
                throw new ArgumentException(Environment.GetResourceString("Argument_EmptyPath"));
            }
            InternalAppendAllText(path, contents, StreamWriter.UTF8NoBOM);
        }

判断是否为空,判断长度是否为0
,其中的InternalAppendAllText方法为一个静态方法.

private static void InternalAppendAllText(string path, string contents, Encoding encoding)
        {
            using (StreamWriter writer = new StreamWriter(path, true, encoding))
            {
                writer.Write(contents);
            }
        }

在代码中可以看到,使用StreamWriter写入,编码格式是:StreamWriter.UTF8NoBOM

FIle.Delete(string path)
删除指定路径下的文件
官方注解:删除指定的文件,如果指定的文件不存在,则不引发异常.

 internal static void InternalDelete(string path, bool checkHost)
        {
            string fullPathInternal = Path.GetFullPathInternal(path);
            FileIOPermission.QuickDemand(FileIOPermissionAccess.Write, fullPathInternal, false, false);
            if (!Win32Native.DeleteFile(fullPathInternal))
            {
                int errorCode = Marshal.GetLastWin32Error();
                if (errorCode != 2)
                {
                    __Error.WinIOError(errorCode, fullPathInternal);
                }
            }
        }

现将路径转换为绝对路径
Path.GetFullPathInternal(path)

File.Exist(string path)
官方注解:判断指定文件是否存在

File.Move()
剪切文件.
注意微软判断时长度 是否为空都不会判断,并且catch要捕捉的内容很明确

File.WriteAllLines(string path,string[] s,Encoding.编码格式)
注意这是会覆盖掉原先的数据的

File.ReadAllLines();读取返回的数组
核心代码

 List<string> list = new List<string>();
            using (StreamReader reader = new StreamReader(path, encoding))
            {
                string str;
                while ((str = reader.ReadLine()) != null)
                {
                    list.Add(str);
                }
            }
            return list.ToArray();

实际上运行的还是StreamReader.ReadLIne(),一行一行的读取
最后返回的是数组,LIst.Toarray,判断条件为null和空是不同的

File.WriteAllText()

Path类:
命名空间:IO
字面意思:路径
是一个专门操作路径的静态类
Path.ChangExtension(string path,string Extension);
官方注解:更改路径字符串的扩展名
请注意这不会实际上改变后缀名,将返回文件名和修改后的后缀名
核心代码:

 while (--length >= 0)
            {
                char ch = path[length];
                if (ch == '.')
                {
                    str = path.Substring(0, length);
                    break;
                }
                if (((ch == DirectorySeparatorChar) || (ch == AltDirectorySeparatorChar)) || (ch == VolumeSeparatorChar))
                {
                    break;
                }
            }

结论:循环判断while(–length),从后面开始直到找到.字符后,前面的一截都算是文件名

Path.Combine(“string path”,”string path”);
官方注解:将两个字符串组合成一个路径
核心代码:

 if (path2.Length == 0)
            {
                return path1;
            }
            if (path1.Length == 0)
            {
                return path2;
            }
            if (IsPathRooted(path2))
            {
                return path2;
            }
            char ch = path1[path1.Length - 1];
            if (((ch != DirectorySeparatorChar) && (ch != AltDirectorySeparatorChar)) && (ch != VolumeSeparatorChar))
            {
                return (path1 + @"\" + path2);
            }
            return (path1 + path2);

在这边需要注意的是,ISPAthRooted(string path)
是获取一个值,是否是绝对路径还是相对路径.

Path.GetDirectoryName(string path);
官方注解:返回指定路径字符串的目录信息,请注意这里使用相对路径是无效的
核心代码:

   int length = path.Length;
            int startIndex = length;
            while (--startIndex >= 0)
            {
                char ch = path[startIndex];
                if (ch == '.')
                {
                    if (startIndex != (length - 1))
                    {
                        return path.Substring(startIndex, length - startIndex);
                    }
                    return string.Empty;
                }

从后面不断找.,如果找到,并且他的位置不在最后一位,则成功.
Path.GetFullPath(string path);
官方注解:返回指定路径字符串的绝对路径–这是绝对路径

Path.GetFileName(string path);
官方注解:返回指定路径字符串的文件名和扩展名,获取到的仅仅包含文件名及或站名

Path.GetFileNameWithOutExtension(path):获取文件名不包含扩展名

Path.GetTempFileName();
官方注解:创建磁盘上唯一命名的零字节的临时文件并返回该文件的完整路径
例如返回的是
“C:\Users\75353\AppData\Local\Temp\tmpBB2.tmp”

DIrectory类
命名空间:IO
英文翻译:目录
专门操作目录的静态类
Directory.CreateDirectory(string path)
官方注解:按path的指定创建所有的目录及子目录

Directory.Delete(string path,bool state)
官方注解:从指定路径删除空目录,
出于保护目的,如果目录不是空的,会提示目录不是空的错误,可以将true写上

Directory.Exists(string path)
官方注解:确定给定路径是否引用磁盘上的现有目录

Directory.GetDirectories(string path);
官方注解:获取指定目录中子目录的名称,注意返回的是绝对路径
返回数组

File,FileInfo, Directory , DirectoryInfo 全面详解 阅读详情

相关推荐

Path、File、FileInfo、Directory、DirectoryInfo

如果需要将处理好的数据永久保存,那么就需要IO流技术将处理好的数据存入文件中,文件又是按照路径存储在磁盘上的,因此我们要学会路径的操作。string[] directoryfiles = Directory.GetFileSystemEntries("C:\\Users\\11442\\Desktop\\10.13\\文件夹01");string[] directots=Directory.GetDirectories("C:\\Users\\11442\\Desktop\\10.13\\文件夹01");

m0_69089705的博客 594

c# winform 路径选择和文件读写

//读文件 private void readBtn_Click(object sender, EventArgs e) { try { if (pathTxt.Text == "") { MessageBox.S

大龙的编程学习笔记 2283

C#文件路径操作全解析:Path、Directory、File类核心用法与跨平台实践

在软件开发中,文件系统操作是基础且关键的环节,涉及数据的持久化存储与读取。其核心原理是通过操作系统提供的API对磁盘上的文件和目录进行管理,包括路径解析、权限校验和IO流处理。掌握稳健的文件操作技术能显著提升应用的可靠性与安全性,避免因路径错误、权限不足或平台差异导致的运行时异常。在实际开发中,无论是构建桌面应用、Web后端还是工具脚本,都会频繁用到路径拼接、文件存在性检查和跨平台兼容处理。本文聚焦C#中的System.IO命名空间,深入讲解Path.Combine、Directory.Exists等热词对

weixin_33922672的博客 337

及时备份--珍惜自己的每一份付出

错误 MSB4018: “AssignTargetPath”任务意外失败。 System.ArgumentException: 路径中具有非法字符。 每一份付出都是有意义的,需要及时保存的,否则付出可能被后来的错误稀释掉。

lgs7907 417

C#中File,Path,Directory类的区别

1、产生10个不重复的集合 #region//产生10个不重复的集合 ArrayList list = new ArrayList(); Random r = new Random(); for (int i = 0; i &amp;amp;amp;lt; 10; i++) { int rNu...

KK1015的博客 1317

Hierarchical-Localization 环境配置与依赖管理全攻略

本文提供了Hierarchical-Localization(hloc)视觉定位工具箱从零开始的环境配置与依赖管理全攻略。针对Windows、Ubuntu和macOS三大操作系统,详细解析了Python版本选择、PyTorch与CUDA版本匹配、pycolmap版本锁定等核心依赖的安装步骤,并汇总了权重文件格式、NumPy版本、路径配置等常见问题的排查与解决方案,旨在帮助用户高效搭建稳定的hloc开发环境。

weixin_29066781的博客 335

DirectoryExists ExtractFilePath函数

Delphi语法结构:function DirectoryExists(const Directory: string): Boolean;C++语法结构:extern PACKAGE bool __fastcall DirectoryExists(const AnsiString Directory);  描述:调用DirectoryExists 为了确定是否由参

wxxwjl的专栏 1398

FA 新增资产API Demo

DECLARE l_trans_rec fa_api_types.trans_rec_type; l_dist_trans_rec fa_api_types.trans_rec_type; l_asset_hdr_rec fa_api_types.asset_hdr_rec_type; l_asset_desc_rec fa_a

chosen1brain的专栏 2142

【C#基础】Path类、File类、Directory类

1.Path类(静态类,用于操作文件路径)  Path类提供的常用静态方法:  string str = @”C:\Users\YF105\Desktop\new.txt”;  Path.GetFileName(str);//获取文件名,包含扩展名  Path.GetFileNameWithoutExtension(str);//获取文件名但不包含文件扩展名  Path.GetExtension(...

yf391005的博客 641

别再手动更新Excel了!用Jira看板管理你的个人项目(附保姆级配置流程)

本文详细介绍了如何利用Jira看板替代Excel进行个人项目管理,提供从注册到配置的保姆级教程。通过极简看板模式、自动化规则和数据分析功能,帮助用户实现任务可视化、协作高效化和提醒自动化,大幅提升个人工作效率。特别适合需要管理复杂个人项目的用户。

weixin_42699679的博客 228

微信小游戏CE修改实战:从入门到精通(附防作弊思路)

本文深入探讨微信小游戏的安全攻防实战,重点分析CE修改、反编译和重打包等安全风险。通过详细的内存修改案例和代码保护方案对比,提供从客户端到服务端的全方位防护策略,帮助开发者构建有效的防作弊体系。

m2n3b4v5c6的博客 1138

File Path Directory总结

阅读目录 开始 Path对路径 字符串进行操作 获得后缀 能合并路径 获取文件名 Directory和DirectoryInfo 对目录进行操作 判断目录是否存在 创建目录 删除目录 获取目录下所有的子目录 获取目录下所有的子文件 File和FileInfo 对文件进行操作 读文件 写文件 追加文件 ...

weixin_30795127的博客 119

为什么你的XGBoost多分类效果不如预期?可能是这5个参数没调对

本文深度剖析了XGBoost模型在处理多分类问题时效果不佳的五大关键参数陷阱。针对多分类问题的独特性,文章提供了max_depth、learning_rate、采样参数及正则化参数等核心参数的量化调整策略与诊断方法,帮助开发者精准调优,有效提升模型在各类别上的均衡性能与泛化能力。

weixin_29182481的博客 295

C#文件操作常用相关类(Directory类、File类、Path类)

1、文件操作常用相关类 1)File //操作文件,静态类,对文件整体操作。拷贝、删除、剪切等 2)Directory //操作目录(文件夹),静态类 3)DirectoryInfo //文件夹的一个“类”,用来描述一个文件夹对象(获取指定目录下的所有目录时返回一个DirectoryInfo数组) 1.FileInfo//文件类,用来描述一个文件对象。获取指定目录下的所有文件时,...

385

编写python脚本调用ordinals以及BRC20的接口

1、钱包地址生成walletreceive,对应ord命令:ord wallet receive。6、测试手动出块generate,这个只在regtest链节点用得上。所有接口都是post请求,采用postman进行测试。4、测试bitcoin转币sendtoaddress。7、测试其他的wallet方法wallet。2、钱包币种铭刻inscription,对应bitcoin-cli命令。对应bitcoin-cli命令。对应bitcoin-cli命令。fee.json文本模板。还可以加很多根据需要加减。

云深海阔专栏 1047

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

文件操作常用相对类File ,FileStream, Directory, Path

文件操作常用相对类: File // 操作文件,静态类。 FileInfo //文件类,用来描述一个文件对象,(获取指定目录下的所有文件,返回一个数组) Directory //操作目录(文件夹),静态类。 DirectoryInfo //文件夹的一个“类”,用来描述一个文件夹(目录)对象。返回一个DirectoryInfo数组,其用法与Directory相似。 ...

ajw9091的博客 230

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

文件操作总结 (Path,Directory,File)

Path类就是对字符串的操作,与实际的文件没有任何关系 属性: Path.GetFileName("路径"), //获取文件名带后缀; Path.GetFileNameWithoutExtension(path)   //获取文件名不带后缀 Path.GetExtension(path)   //只获取文件后缀 Path.GetDirectoryName(path) //只获取文件的路径

u014745848的专栏 1291

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

C#-File、Path、Directory类的区别

目录(文件夹)的创建(Creat),移动(Move),获取目录下的所有文件(GetFiles),所有文件夹(GetDirectories),文件夹是否存在(Exists)剪切(Move),复制(Copy),删除(delete),读取,写入,文件是否存在Exists。//获取文件夹名称添加到节点集合。//获取文件的名称添加到节点集合。//获取路径下的所有文件夹。//获取路径下面的所有文件。//1、读取每行数据 返回字符数组。//字节数组--->字符串。//2、读取整个文件。/// 节点对象集和。

GarFe的博客 328

C++的基础知识(五)--Path类、Directory类与File类

Path类与Directory类与File类的操作实例 1、Path类: Path 对路径 字符串进行操作获得后缀,能合并路径,获取文件名 using System; using System.IO;//目录和文件操作的名称空间 namespace _11_Path类 { class Program { static void Main(string[] args) { string

gaotong0527的博客 8581

C# 文件/文件夹处理常用类 File,Directory,Path

C# 文件/文件夹处理常用类 File,Directory,Path

xie__jin__cheng的博客 519

C# File类、Path类复习

File类 Path类

钢铁男儿 439

java idispose_Path 路径类 | Directory 文件夹类 | File 文件类 | FileStream 文件流类

《简介》File 操作文件,静态类,对文件整体操作。拷贝,删除,剪切等Directory 操作目录(文件夹),静态类。DirectoryInfo 文件夹的一个“类”,用来描述一个文件夹对象(获取指定目录下的所有目录时返回的一个DirectoryInfo数组)FileInfo 文件类,用来描述一个文件对象,获取指定目录下的所有文件时,返回一个FileInfo数组。Path 对文件或目录的路径进行操作...

weixin_31460419的博客 237
上一篇: XX科技继续11-08
下一篇: 正则表达式
天赋进行时
博客等级 码龄11年 3粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值