0

我收到此指令的错误:

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

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

但我没有得到这个指令的错误:

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

output:
.
..
Local
LocalLow
Roaming

为什么 ?

4

2 回答 2

7

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

您可能可以获得所需的路径getenv()

const char *appData = getenv("APPDATA");
if (appData) {
    dp = opendir(appData);
} else {
    /* die or recover */
}
于 2012-04-20T12:29:10.850 回答
2

因为第一个opendir从字面上试图打开目录%APPDATA%/.

于 2012-04-20T12:29:37.467 回答