2012-09-06 30 views
5

Tôi thu thập danh sách tệp vào một QStringList từ GUI Qt. Mỗi tệp trong số này là tệp .txt, với tệp video tương ứng trong same_folder_as_txt/videos/.Cách xử lý một QString làm vị trí tệp và nhận thư mục của nó

Có cách nào dễ dàng để thao tác các đối tượng QString dưới dạng đường dẫn tệp không? Ví dụ, cho C:/some/path/foo.txt, tôi muốn lấy C:/some/path/videos/foo.avi

Trả lời

6

Bạn có thể chuyển đổi chúng mỗi để QDir, thực hiện những thay đổi của bạn như một con đường, và sau đó sử dụng absolutePath() để có được những QString lại.

8

Với đường dẫn của bạn như một 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

sử dụng QStringList để xây dựng một con đường là một chút như sử dụng gươm ánh sáng để mở một lon cá ngừ. Tại sao không sử dụng toán tử nối? video_file = base_name% QLatin1String (". avi); và video_path = dir_name% QDir :: dấu phân cách()% QLatin1String (" video ")% QDir :: separator()% video_file; –

Các vấn đề liên quan