我在DirectX和C ++中制作一个简单的游戏。 但我想在Documents中为设置等创建一个目录。
但我不知道我该怎么做?
有人可以帮助我吗?
答案 0 :(得分:3)
您可以使用Visual Studio的<filesystem>
有一个函数create_directory
具有签名
template<class Path>
inline bool create_directory(
const Path& Pval
);
您可以使用具有签名
的SHGetKnownFolderPath
找到用户的文档目录
HRESULT SHGetKnownFolderPath(
_In_ REFKNOWNFOLDERID rfid,
_In_ DWORD dwFlags,
_In_opt_ HANDLE hToken,
_Out_ PWSTR *ppszPath
);
在这种情况下,您要使用的REFKNOWNFOLDERID
为FOLDERID_Documents
请注意,这是Visual Studio特有的。 C++ <filesystem>
库目前仍处于工作中(即实验性的),但希望很快就会到来!
答案 1 :(得分:1)
C ++ 11标准n3337不了解directories。 C ++ 17具有<filesystem>
标准标头。
如果您的实现符合C ++ 17(可能不符合),请使用std::filesystem::create_directory
否则,请使用operating system原语。请注意,目录的概念可能是特定于操作系统的(即,一个操作系统与另一个操作系统不同,甚至可能在不同的file systems之间)。对于Windows,请研究WinAPI(因此请考虑CreateDirectoryA)。对于Linux,请查看其syscalls(2)(因此考虑mkdir(2))
答案 2 :(得分:0)
您可以使用<direct.h>
中的简单mkdir创建目录
_mkdir("C:\\Data\\FolderName");
答案 3 :(得分:0)
对于Visual Studio:
System::IO::Directory::CreateDirectory(yourDir);
答案 4 :(得分:0)
如果您还没有C ++ 17并寻找与平台无关的解决方案,请使用 ghc::filesystem。 标头符号代码与C ++ 17(实际上是一个反向端口)兼容,以后很容易移植。