gpt4 book ai didi

c++ - 文件系统父路径和 “..”字符串以返回到父路径

转载 作者:行者123 更新时间:2023-12-02 10:28:25 25 4
gpt4 key购买 nike

我没有使用boost,而是使用了基本上基于boosts文件系统的C++ 17文件系统。
我想使用C++文件系统列出目录,文件名和父目录快捷方式“..”。
我将目录和文件名添加到列表没有问题,我这样做是这样的:

string path="C:\something\test";

//add missing code here:
//should find: ".." or not.

//add directories to list
for (auto& p : directory_iterator(path))
{
if (p.is_directory())
{
string name = p.path().filename().string();
list[index].push_back(name);
}
}

//add files to list
for (auto& p : directory_iterator(path))
{
if (!p.is_directory())
{
string filename = p.path().filename().string(); //hele filnavnet (med filtype)
list[index].push_back(filename);
}
}
这工作正常并且很好,但是问题是如果我在C:\ something \ test \ path这样的子目录中,则会缺少“..”。我想知道是否有可用的父路径,使用文件系统最简单的方法是什么?
同样,如果路径是“C:”,那么我的程序应该说“..”不可用。
基本上,如果我在C:\ something \ test \中,则列表看起来可能像这样。
..
AnotherDirectory
YetAnotherDirectory
file1.txt
file2.txt
etc.txt
如果我在“C:”中
列表看起来像这样(没有“..”)
Something
Directory2
file1.txt
command.com
autoexec.but
config.lol

最佳答案

我是@ G.M。

if (fs::current_path() != fs::current_path().parent_path())
MessageBox(NULL, ".. exists", "Message", MB_OK);
else
MessageBox(NULL, ".. doesn't exist", "Message", MB_OK);
这是一种行之有效的方法,但是我不知道任何更简单或更好的方法。

关于c++ - 文件系统父路径和 “..”字符串以返回到父路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63300583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com