我收到此指令的错误:
dp = opendir ("%APPDATA%/.");
output:
Couldn't open directory: No such file or directory.
但我没有收到此指令的错误:
dp = opendir ("C:/Users/xrobot/AppData/.");
output:
.
..
Local
LocalLow
Roaming
为什么?
opendir
不会像 %APPDATA%
那样扩展元变量,shell 会扩展元变量。所以这些东西可以从命令行工作,但不能从程序工作。在你的程序中,你必须使用绝对或相对路径。
您可以通过
getenv()
, 获取所需的路径
const char *appData = getenv("APPDATA");
if (appData) {
dp = opendir(appData);
} else {
/* die or recover */
}
因为第一个
opendir
是LITERALLY尝试打开目录%APPDATA%/.
。