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()}");
    }
相关推荐
周杰伦fans几秒前
C# 中 SQL Server 数据库调优指南(小白友好版)
开发语言·数据库·c#
gc_22991 小时前
学习C#调用AspNetCoreRateLimit包限制客户端访问次数(4:源码分析)
c#·coreratelimit
czhc11400756632 小时前
WinForm 1130 monthCalendar NumbericUpDown Timer
c#·winform
sali-tec3 小时前
C# 基于halcon的视觉工作流-章65 点云匹配-基于形状
开发语言·人工智能·算法·计算机视觉·c#
缺点内向3 小时前
如何在C#中为文本内容添加行号?
开发语言·c#·word·.net
returngu5 小时前
Fanuc6轴机械臂连接方式
c#·自动化·fanuc
周杰伦fans6 小时前
C#中ValueTask
开发语言·c#
烛阴6 小时前
C#继承与多态全解析,让你的对象“活”起来
前端·c#
曹牧6 小时前
C#:<SubType>Component</SubType>
开发语言·c#
Avalon7127 小时前
Unity中自定义协程的实现
游戏·unity·c#·游戏引擎