4.1 C#获取目录的3个方法的区别

C#中常用有如下3个获取目录的方式如下

1.Directory.GetCurrentDirectory():获取当前工作目录,工作目录可能被用户或其他代码修改。尽量少用。(似乎只要在运行中使用另存为或者打开某个文件夹,当前工作目录就修改)

2.Application.StartupPath(): 获取应用程序的启动目录,返回不带末尾的'\'

3.AppDomain.CurrentDomain.BaseDirectory:获取应用程序的启动目录,返回带有'\'

复制代码

结论:

  • 通用场景 :优先使用 AppDomain.CurrentDomain.BaseDirectory(更安全、跨平台兼容)。

  • WinForms 专用 :若需要无末尾反斜杠的路径,可使用 Application.StartupPath,但需注意平台限制。

  • Web 或服务 :必须使用 AppDomain.CurrentDomain.BaseDirectory,避免路径错误

复制代码
【修改当前工作路径的代码例子】:
static void Main()
    {
        // 获取当前工作目录
        string currentDir = Directory.GetCurrentDirectory();
        Console.WriteLine($"当前工作目录: {currentDir}");

        // 尝试修改工作目录
        Directory.SetCurrentDirectory(".."); // 切换到上级目录
        Console.WriteLine($"修改后的工作目录: {Directory.GetCurrentDirectory()}");
    }
相关推荐
小金子会发光10 小时前
C# WinForms 手搓 Modbus RTU 调试助手:不依赖第三方 Modbus 库,从 CRC16 到 8 种功能码完整实现
c#·modbusrtu·串口通讯
上海安当技术14 小时前
C/S 桌面软件怎么接 UKey 强认证?C# SDK 与 C 动态库集成 WinForms/Qt/工控实战
c语言·qt·c#
明如正午15 小时前
【C#】跨线程更新进度条_UpdateProgress 方法解析
c#
曹牧16 小时前
C#:`JsonConvert.DeserializeObject`
windows·c#
望天hous16 小时前
C#中masstranist快速入门
开发语言·c#
冷咖啡离 我的笨笨17 小时前
数据去重:通过 C# 删除 Excel 中的重复行
开发语言·c#·excel
鱼听禅20 小时前
C#学习笔记-添加编译参数到程序集自动更新程序编译时间
笔记·学习·c#
不正经学生21 小时前
C语言指针进阶:const 和野指针——给指针加锁,向野指针宣战
c语言·开发语言·c++·算法·c#
czhc114007566321 小时前
# ProcessJob 构造函数 — 语法与概念
c#
用户298698530141 天前
无需安装 Excel,也能轻松将 CSV 转为 XLS 或 XLSX
后端·c#·excel