【发布时间】:2011-12-15 10:40:40
【问题描述】:
获取文件所在目录的最简单方法是什么?我正在使用它来查找工作目录。
string filename = "C:\MyDirectory\MyFile.bat"
在这个例子中,我应该得到“C:\MyDirectory”。
【问题讨论】:
-
讨厌:这是一个狭窄的 STL 字符串吗?您应该使用 Unicode 字符串来处理 Windows 上的所有文件。
-
@Rup:真的吗?查找
'/'和'\'时,编码是否重要?只要您不将字符串解释为 ASCII/Latin1/任何错误的假设 -
@sehe 不,当然,如果字符串是 UTF-8,那么您将不会遇到国际化等问题,或者有人向您提供带有日文名称的文件。但只有 UTF-8,当其他一切都使用 UTF-16 时,使用 UTF-8 毫无意义 - 可能包括你首先从哪里获得字符串。
-
@Rup:所以我们知道你更喜欢 UTF16。供您参考,Windows 将文件名视为 UTF-16 字符的 不透明 数组。另请注意,UTF-16 仍然是一种可变长度的字符编码;它实际上并没有比 UTF-8 买多少。如果您为了实现的简单性而争论 UCS-2(固定长度字符),我会理解的,但话说回来,Windows 还是将其视为 UCS-16
-
为什么要重新发明轮子,亲爱的同事们?使用由可能知道自己在做什么的人测试和编写的库。
标签: c++ visual-c++