我发现这个指令有一个错误:

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

  output:
  Couldn't open directory: Mo 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 */
}

关于c++ - opendir错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10246227/

10-11 21:46