2012-08-07 12 views
10

Aşağıdakilerden herhangi biri yardımcı olabilir mi?QString replace '' 'ile'/'nasıl değiştirilir()?

mystring.replace("/","\\"); 

Ama sadece yerine tek \ koyar: Belirli bir dosyanın saklanan bir filepath ile QString olduğunu varsayalım, ben denedim \\ (çift ters eğik) ile ondan / (eğik çizgi) değiştirmek istiyor yenilenmeden önce \\

Dize: D:\myfiles\abc.zip

expec: değişiminden sonra D:/myfiles/abc.zip

Dize ted dize:

mystring.replace("/","\\\\"); 

derleyici (\t, \n veya \r gibi şeyler için) dizeleri bir kaçış karakteri olarak \ kullanır aslında \ dönüştü \\ böylece: D:\\myfiles\\abc.zip

+0

bildiğim kadarıyla QFile/QFileInfo mutlu herhangi bir dizin ayırıcı – friendzis

+0

şaşırdım çalışmak hatırladığınız Bu aslında derler. Eğer '\\' Üçüncü ile kapanış '" 'kaçan Ve hangi dili yapmak kullandığınız C++ – CodesInChaos

+0

Ama adb ihtiyaçları '\\' değildir:??? p Ben otomatik adb aracı yapıyorum :) –

cevap

23

Sen kullanmak gerekir. İki ters eğik çizgi gerekiyorsa, dört ile başlamalıdır. Bunları değiştirmek istiyorsun Neden

0

1), bir adil ileri de (ne olursa olsun) OS dosya operasyonlarında çalışmalarını kesiyor. örneğin tek ters bölü neden \\ sonuçları -
2) Dokümanları okumaya çalışırım mü? Windows biçimine yollarını dönüştürmek istiyorsanız

+0

ileri bir Android Phone adb işlemleri yaparken işe yaramaz eğik nedenle; Birisi Konuyu yaparken ben daktilo değil gerçek kod şu benim yazı düzenlenebilir, benim kod mystring.replace ("/", "\\") 'dir onlar çift tersbölülerle yerine olması gerekir (hatta tek ters eğik çizgi çalışmaz: p) –

+0

Sen docs yukarıdaki paxdiablo tarafından gönderildi açıklamasını okumak olabilirdi, açıkça tek kullanımı açıklanmaktadır '\\' çıkış karakteri olarak. Her çıkış karakteri onu takip eden bir karakterden kaçar. –

18

, sadece QDir::toNativeSeparators() kullanabilirsiniz: Gerçekten emin değil, ama

qDebug() << QDir::toNativeSeparators("c:/windows/path"); // Prints "c:\windows\path" 
İlgili konular