0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

QDir拼接路徑解決各種\\//斜杠問題

DS小龍哥-嵌入式技術(shù) ? 來源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2023-05-24 10:58 ? 次閱讀

一般在項(xiàng)目中經(jīng)常需要組合路徑,與其他程序進(jìn)行相互調(diào)用傳遞消息通信。 經(jīng)??赡芤?yàn)槎嗉有备?、少加斜杠等問題導(dǎo)致很多問題。 為了解決這些問題,我們可以使用QDir來完成路徑的拼接,不要直接拼接字符串。

QDir的靜態(tài)方法QDir::cleanPath() 是為了規(guī)范化路徑名的,在使用QDir組合路徑時,只需使用/作為路徑分隔符即可。 例如:

#include 
#include 
#include 

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    
    QString dirPath = QDir::cleanPath(QDir::homePath() + "/Documents/data");
    qDebug() << dirPath;

    return a.exec();
}

上述代碼中,使用QDir::homePath()獲取用戶文檔目錄,并使用/作為路徑分隔符將其與子目錄data組合起來,得到了完整的目錄路徑。

QDir::cleanPath() 可以刪除路徑中多余的斜杠。例如,如果路徑中有多個連續(xù)斜杠或末尾斜杠,則該方法將它們替換為單個斜杠。

以下是一個示例代碼:

#include 
#include 
#include 

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    
    QString path1 = QDir::cleanPath("/home/binjie09//Documents/");// 多個連續(xù)的斜杠
    qDebug() << "Cleaned path1:" << path1;

    QString path2 = QDir::cleanPath("/home/binjie09/Documents/images/");// 末尾斜杠
    qDebug() << "Cleaned path2:" << path2;

    return a.exec();
}

上述代碼中,使用QDir::cleanPath()清理了兩個路徑,分別是/home/binjie09//Documents//home/binjie09/Documents/images/。在清理后,多個連續(xù)斜杠被替換成一個斜杠,末尾斜杠被去除,得到了規(guī)范化后的路徑。

使用QDir拼接多個路徑,可以使用QDir::filePath()方法。例如:

QString path1 = "C:/documents";
QString path2 = "work";
QString path3 = "project1";

QDir dir(path1);
QString result = dir.filePath(path2);
dir.setPath(result);
result = dir.filePath(path3);
qDebug() << result; // 輸出:C:/documents/work/project1

上述代碼中,我們首先定義了三個路徑,分別是"C:/documents"、"work"和"project1"。然后,我們創(chuàng)建了一個QDir對象,用于表示第一個路徑"C:/documents"。

接下來,使用filePath()方法將其他兩個路徑拼接起來。首先將"path2"添加到QDir對象中生成新的路徑,然后將"path3"再添加到新生成的路徑中。最終,得到了拼接后的路徑"C:/documents/work/project1"。

需要注意的是,在調(diào)用filePath()方法之前,要先創(chuàng)建一個QDir對象,用于表示第一個路徑。這是因?yàn)?code>filePath()方法是QDir類的方法,只能通過QDir對象調(diào)用。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    566

    瀏覽量

    20386
  • 靜態(tài)
    +關(guān)注

    關(guān)注

    1

    文章

    28

    瀏覽量

    14503
  • Qt
    Qt
    +關(guān)注

    關(guān)注

    1

    文章

    300

    瀏覽量

    37606
收藏 人收藏

    評論

    相關(guān)推薦

    1602如何顯示斜杠,不是反斜杠

    本帖最后由 eehome 于 2013-1-5 10:10 編輯 1602如何顯示斜杠,不是反斜杠{:4_95:}
    發(fā)表于 12-11 19:42

    圖像拼接

    簡單的labview圖像拼接程序
    發(fā)表于 05-15 23:19

    為什么我接收串口發(fā)送的數(shù)據(jù)時總有反斜杠的出現(xiàn)?

    `為什么我接收串口發(fā)送的數(shù)據(jù)時總有反斜杠的出現(xiàn),如圖,怎樣去掉這個反斜杠?求指導(dǎo)?。?!`
    發(fā)表于 10-20 23:29

    這個位置的斜杠是什么意思

    `這個位置的斜杠是什么意思`
    發(fā)表于 11-22 19:16

    斜杠“\”的編譯器錯誤

    使用Galileo上的Linux計算機(jī)檢查電子郵件?;旧希沂褂靡韵耹inux命令來檢查我已設(shè)置的此電子郵件帳戶上的電子郵件數(shù)量。但是,編譯器似乎不喜歡反斜杠“\”并繼續(xù)給出錯誤(反斜杠
    發(fā)表于 10-11 16:56

    cob拼接屏廠家

    本文作者:深圳大元拼接屏有幾種,led顯示屏就是其中之一。cob顯示屏作為led顯示屏系列之一產(chǎn)品,拼接出來的顯示屏,顯示畫面更加清晰、細(xì)膩,色彩更加柔和、靚麗。cob拼接屏廠家--深圳大元
    發(fā)表于 06-24 16:26

    玩轉(zhuǎn)iPhone:iPhone各種文件路徑詳解

    玩轉(zhuǎn)iPhone:iPhone各種文件路徑詳解 很多iPhone初級玩家對錯綜復(fù)雜的iPhone文件路徑和文件夾一籌莫展,權(quán)限設(shè)置和文件管理更是無從下
    發(fā)表于 04-07 09:17 ?476次閱讀

    不同的系統(tǒng)中路徑的分隔符分析

    在不同的系統(tǒng)中,路徑的分隔符不同,故需要做出判斷,并切換分隔符; String類中replaceAll方法如下: String.replaceAll(String regex,String
    的頭像 發(fā)表于 12-07 17:11 ?4230次閱讀

    oled拼接屏與液晶拼接屏的區(qū)別

    oled拼接屏最大的特點(diǎn)是可彎曲,所以能拼接成弧形、圓形、異形等,而液晶拼接屏只能橫、豎拼接
    發(fā)表于 04-30 15:45 ?2593次閱讀

    拼接屏怎么實(shí)現(xiàn)拼接_拼接屏安裝教程

    液晶拼接屏是一種具有可拼接性,可組成一個大面積顯示區(qū)域的大屏幕產(chǎn)品,廣泛應(yīng)用于各種大屏需求場合,如會議、展示、監(jiān)控指揮中心等領(lǐng)域,可以實(shí)現(xiàn)單屏、全屏、分割、畫面跨屏漫游等多種顯示方式,下面就為您介紹一下液晶
    的頭像 發(fā)表于 08-06 11:24 ?2.2w次閱讀

    拼接屏怎么樣?55寸液晶拼接屏特點(diǎn)介紹

    55寸液晶拼接屏既能單獨(dú)作為顯示器使用,又可以當(dāng)液晶拼接墻使用。根據(jù)不同使用需求,實(shí)現(xiàn)可變大也可變小的百變大屏功能:單屏分割顯示、單屏單獨(dú)顯示、任意組合顯示、全屏液晶拼接、雙重拼接液晶
    的頭像 發(fā)表于 09-04 15:29 ?6444次閱讀

    Java中反斜杠有哪些用法

    在字符常量中,反斜杠(\)是一個特殊的字符,被稱為轉(zhuǎn)義字符,它的作用是用來轉(zhuǎn)義后面一個字符。(\\)表示要插入一個正則表達(dá)式的反斜線,其后的字符具有特殊意義。
    的頭像 發(fā)表于 02-06 17:08 ?1528次閱讀

    C 語言的頭文件路徑位置問題

    的朋友們來說,一些系統(tǒng)的庫文件路徑根本就不知道在什么地方。 所以本文我們就來聊一下 C 語言的頭文件路徑相關(guān)的問題 ,包括系統(tǒng)路徑位置,絕對路徑與相對
    的頭像 發(fā)表于 06-22 10:05 ?5780次閱讀
    C 語言的頭文件<b class='flag-5'>路徑</b>位置問題

    分享液晶拼接屏常見故障的解決技巧

    液晶拼接屏作為一種高端的顯示設(shè)備,被廣泛應(yīng)用于各種行業(yè)。然而,在使用過程中,液晶拼接屏可能會出現(xiàn)各種故障。
    的頭像 發(fā)表于 11-23 15:26 ?1511次閱讀

    LCD拼接屏自拼接設(shè)置方法指南

    一、引言 ?LCD拼接屏作為一種先進(jìn)的顯示設(shè)備,廣泛應(yīng)用于各種場合,如會議廳、展覽館、商場等。然而,對于初次接觸LCD拼接屏的用戶來說,如何正確地進(jìn)行拼接設(shè)置可能是一個難題。小編將詳細(xì)
    的頭像 發(fā)表于 02-28 10:26 ?811次閱讀