opendir 错误:无法打开目录:Mo 这样的文件或目录

问题描述 投票:0回答:2

我收到此指令的错误:

  dp = opendir ("%APPDATA%/.");

  output: 
  Couldn't open directory: No such file or directory.

但我没有收到此指令的错误:

dp = opendir ("C:/Users/xrobot/AppData/.");

output:
.
..
Local
LocalLow
Roaming

为什么?

c++ c opendir
2个回答
7
投票

opendir
不会像
%APPDATA%
那样扩展元变量,shell 会扩展元变量。所以这些东西可以从命令行工作,但不能从程序工作。在你的程序中,你必须使用绝对或相对路径。

您可以通过

getenv()
,

获取所需的路径
const char *appData = getenv("APPDATA");
if (appData) {
    dp = opendir(appData);
} else {
    /* die or recover */
}

2
投票

因为第一个

opendir
LITERALLY尝试打开目录
%APPDATA%/.

© www.soinside.com 2019 - 2024. All rights reserved.