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()}");
    }
相关推荐
专注VB编程开发20年41 分钟前
.net c#音频放大,音量增益算法防止溢出
算法·c#·音频处理·录音·音量增益·增益控制
专注VB编程开发20年1 小时前
.NET Reflector反编绎,如何移除DLL中的一个公开属性
开发语言·c++·c#
唐青枫3 小时前
C#.NET Random 深入解析:随机数生成原理与最佳实践
c#·.net
永远有缘4 小时前
Java、Python、C# 和 C++ 在函数定义语法上的主要区别
java·c++·python·c#
yue00811 小时前
C#理论学习-WinForm实践开发教程总结
开发语言·学习·c#
睡前要喝豆奶粉14 小时前
多表分页联查——EF Core方式和Dapper方式
c#·.netcore
格兰芬多呼神护卫15 小时前
python实现Latex格式的公式转OMML并写入word
python·c#·word
chao18984416 小时前
C 文件操作全解速览
服务器·c语言·c#
月巴月巴白勺合鸟月半18 小时前
一个DevExpress的Docx文件处理的Bug的解决
c#·bug
.NET修仙日记19 小时前
第一章:从零开始构建你的第一个C#/.NET应用程序
c#·.net·.net core