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()}");
    }
相关推荐
hhw1991125 小时前
c#知识点补充3
开发语言·c#
就是有点傻6 小时前
C#中Interlocked.Exchange的作用
java·javascript·c#
就是有点傻7 小时前
C# 中实现一个线程持续读取,另一个线程负责写入,且写入时读取线程暂停
数据库·c#
牛奶咖啡138 小时前
C#中值类型与引用类型是直观使用示例
c#·值类型·引用类型·值类型与引用类型示例·值类型与引用类型内存效果图示例
幻想趾于现实11 小时前
C#中 String类API(函数)
开发语言·c#
JosieBook12 小时前
【C#语言】深入理解C#多线程编程:从基础到高性能实践
开发语言·c#
雾岛LYC听风12 小时前
3. 轴指令(omron 机器自动化控制器)——>MC_SetOverride
运维·c#·自动化
咩咩觉主13 小时前
Unity 实现一个简易可拓展性的对话系统
unity·c#·游戏引擎·程序框架
鲤籽鲲14 小时前
C# SerialPort 类中 Handshake 属性的作用
开发语言·c#·上位机