.net - ./在我使用 OpenFileDialog 时更改目标

标签 .net c++ relative-path openfiledialog

我正在使用 streamwriter 来记录错误

它的设计方式(请不要问为什么)是每次应用程序必须记录消息时打开一个新的 streamwriter。它将所有内容输出到 ./Logs/[current-date].txt,通常解析为“c:\myappfolder\logs[current-date].txt”

一切正常,但在我使用打开文件对话框说“C:\home\myfolder\myfile”后,streamwriter 尝试写入“c:\home\myfolder\logs[current-date].txt” "

我知道这个问题的解决方案,但我只是不明白发生了什么

最佳答案

当前目录是进程范围的值。

OpenFileDialog 正在更改当前目录。

如果您正在使用 .NET OpenFileDialog 类,您可以将 RestoreDirectory 属性设置为 true 以告知对话框离开仅当前目录(尽管 RestoreDirectory 文档的编写方式可能存在一些线程问题,我想这可能会使它仍然不适合日志记录工具)。

关于.net - ./在我使用 OpenFileDialog 时更改目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/369506/

相关文章:

c++ - Visual Studio 2015 字符串文字并不总是不变的?

c# - 如何修复 .NET Windows 应用程序在启动时崩溃并出现异常代码 : 0xE0434352?

c# - 如果转换为 null,为什么 Convert.ToString(null) 会返回不同的值?

C++:如何制作一个已经包含元素的 vector

java - iText – HTML 到 PDF - 图像不显示在 PDF 中

javascript - 在相对路径中使用 '../' 可以吗?

git - 如何从 git status 获取相对于当前目录的路径?

c# - 从 Int 到 Hex 的 14 位编码/解码,反之亦然

c# - 当可以从用户对象中提取所需的属性时,像 GetPhoneNumberAsync(IdentityUser user) 这样的 UserManager 方法的目的是什么?

c++ - Linux 和 C++ : Easy way to exchange objects between two processes