2012-09-06 17 views
5

Recopilo una lista de archivos en un QStringList desde una GUI de Qt. Cada uno de estos archivos es un archivo .txt, con un archivo de video correspondiente en same_folder_as_txt/videos/.Cómo tratar un QString como una ubicación de archivo y obtener su directorio

¿Existe una manera fácil de manipular objetos QString como rutas de archivos? Por ejemplo, dada C:/some/path/foo.txt, quiero recuperar C:/some/path/videos/foo.avi

Respuesta

6

Puede convertirlos a cada QDir, realice sus modificaciones como un camino, y luego usar absolutePath() para obtener la parte posterior QString.

8

Teniendo en cuenta su trayectoria como QStrings

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("/") 
+1

usando QStringList para construir un camino es un poco como el uso de sable de luz para abrir una lata de atún. ¿Por qué no usar el operador de concatenación? video_file = nombre_base% QLatin1String (". avi); y video_path = dir_name% QDir :: separator()% QLatin1String (" videos ")% QDir :: separator()% video_file; –

Cuestiones relacionadas