【问题标题】:Where can I create a directory without admin rights?在哪里可以创建没有管理员权限的目录?
【发布时间】:2020-02-04 13:26:24
【问题描述】:

我正在尝试使用我的程序创建一个目录,但该程序不会在管理员下运行。我可以在 Windows 文件系统的哪个位置创建目录并在没有管理员权限的情况下写入目录?

【问题讨论】:

  • 这取决于你的用途。这是每个用户还是每台机器的文件?
  • 因此您需要将其保存在用户配置文件下的某个位置。
  • SHGetKnownFolderPath 是您要找的。​​span>
  • 没错。虽然你永远不会硬编码这样的路径
  • 不要在配置文件目录中创建文件夹。如果是用于用户文档,请在用户的个人文档文件夹中创建。如果是应用配置数据,在用户的漫游或本地应用数据目录下创建。如果数据在使用漫游配置文件的组织中跨机器跟踪用户是有意义的,请使用漫游目录。 OTOH,如果它是大量数据或者您的应用程序将特定于特定机器,那么使用本地应用程序数据目录更有意义。

标签: windows winapi filesystems


【解决方案1】:

如果没有管理员权限,预期行为是您可以写入用户帐户文件夹内的文件夹。

C:\Users\%USERNAME%\

您可以写入文档、图片和音乐子文件夹,AppData\Roaming 或 AppData\Local\ 等...

正如cmets中提到的SHGetKnownFolderPath是获取这些文件夹路径的首选方法,这里是一个简单的例子:

#include <windows.h>
#include <iostream>
#include <shlobj_core.h>

int main()
{
    PWSTR path = nullptr;

    SHGetKnownFolderPath(FOLDERID_Documents, 0, 0, &path);

    std::cout << path << std::endl;

    std::getchar();
    return 0;
}

【讨论】:

    猜你喜欢
    • 2014-04-23
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 2021-05-23
    • 2010-09-08
    • 1970-01-01
    • 2011-07-14
    相关资源
    最近更新 更多