【问题标题】:opendir error?打开目录错误?
【发布时间】:2012-04-20 12:26:32
【问题描述】:

我收到这个指令的错误:

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

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

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

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

output:
.
..
Local
LocalLow
Roaming

为什么?

【问题讨论】:

    标签: c++ c opendir


    【解决方案1】:

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

    getenv()大概可以获取到需要的路径,

    const char *appData = getenv("APPDATA");
    if (appData) {
        dp = opendir(appData);
    } else {
        /* die or recover */
    }
    

    【讨论】:

    • 我不是 Windows 专家,但您可能必须为此使用 getenv()。试试const char* appData = getenv("APPDATA"); dp = opendir(appData);
    • 我不了解 C++,在 C 中你可以使用 getenv 来查找 APPDATA 的值。好吧,至少在 *nixish 系统上,不确定 Windows。
    【解决方案2】:

    因为第一个opendirLITERALLY 试图打开目录%APPDATA%/.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-10
      • 2012-02-27
      • 2019-08-28
      • 1970-01-01
      • 2011-07-18
      相关资源
      最近更新 更多