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()}");
    }
相关推荐
z落落2 小时前
C#WinForm 窗体切换与窗体传值(登录跳转案例)+WinForm 窗体传值(从上往下传、从下往上传)
开发语言·windows·c#
ytttr8736 小时前
C# 定时数据库备份工具
开发语言·数据库·c#
雪豹阿伟7 小时前
21.Winfrom —— 定时器、日期选择器、进度条、表格、DataTable
c#·上位机·winfrom
z落落7 小时前
C#WinForm控件实战:Panel与单选框动态创建
开发语言·c#
qq_4221525710 小时前
Word 文件太大怎么压缩?2026 年文档瘦身方案对比
开发语言·c#·word
影寂ldy11 小时前
C# 事件完整学习笔记(发布订阅 + 自定义事件 + 内置 EventHandler)
笔记·学习·c#
kyle~13 小时前
DDS分布式实时系统---自省机制
开发语言·分布式·机器人·c#·接口·ros2
Java面试题总结13 小时前
MarkItDown 再次登顶GitHub榜
开发语言·c#·github
xiaoshuaishuai814 小时前
C# 定制化Markdown编辑器
开发语言·c#·编辑器
yugi98783815 小时前
基于C#实现数字识别率的OCR方案
开发语言·c#·ocr