如何将QString视为文件位置并获取其目录

Jim*_*Jim 5 c++ qt

我从Qt GUI将一个文件列表收集到一个QStringList中.这些文件中的每一个都是一个.txt文件,其中包含相应的视频文件same_folder_as_txt/videos/.

有没有一种简单的方法可以将QString对象作为文件路径进行操作?例如,给定C:/some/path/foo.txt,我想要检索C:/some/path/videos/foo.avi

Pie*_* GM 10

鉴于你的道路 QString s

info = QFileInfo(s)
// Get the name of the file without the extension
base_name = info.baseName()
// Add a ".avi" extension
video_file = QStringList((base_name, "avi")).join(".")
// Get the directory
dir_name = info.path()
// Construct the path to the video file
video_path = QStringList((dir_name, QString("videos"), video_file).join("/")
Run Code Online (Sandbox Code Playgroud)

  • 使用QStringList构建路径有点像使用光剑打开金枪鱼罐头.为什么不使用连接运算符?video_file = base_name%QLatin1String(".avi);和video_path = dir_name%QDir :: separator()%QLatin1String("videos")%QDir :: separator()%video_file; (2认同)

cma*_*t85 6

你可以将它们转换到每一个QDir,执行您的修改路径,然后用absolutePath()得到的QString回来.