Kein double slash im pfad wenn ich SHBrowseForFolder nutze

Indian

Erfahrenes Mitglied
Hi

ich hab ein problem. Der Pfad der mir SHBrowseForFolder zurück liefert, hat immer nur ein slash. Der zurückgebenen Pfad im form eines Strings bringt mir leider nichts. Ich möchte gerne in meinem Dialog ein paar Bilder laden, die nicht angezeigt werden bzw. auch nicht gefunden werden wenn im Pfad nur ein slas "\" vorhanden ist.

Es geht nur so "E:\\Bilder" und so geht das nicht "E:\Bilder"

Irgendwie kann ich leider auch nicht denn String mit dem Pfad bearbeiten d.h. ich kann kein weiteres slash "\" einfügen.

Kann mir jemand damit helfen Kann SHBrowseForFolder auch denn Pfad mit 2 slash'es "\\" zurückliefern? Wenn ja wie geht das ?

Danke
 
hab das schon versucht z.B.

IniFile.SetPathName(m_IniFilePath);
m_IniFilePath.Replace("\","\\");

bekomme leider immer ne Fehlermeldung die folgendermassen lautet. Ich finde das ÄUSSERST komisch.

Code:
c:\Dokumente und Einstellungen\Mother\Eigene Dateien\Visual Studio-Projekte\Kasse\Kasse\ConfigDlg.cpp(58): warning C4129: 'K' : Nicht erkannte Folge von Escape-Zeichen
c:\Dokumente und Einstellungen\Mother\Eigene Dateien\Visual Studio-Projekte\Kasse\Kasse\InventoryDlg.cpp(53): warning C4129: 'K' : Nicht erkannte Folge von Escape-Zeichen
c:\Dokumente und Einstellungen\Mother\Eigene Dateien\Visual Studio-Projekte\Kasse\Kasse\InventoryDlg.cpp(57): error C2661: 'ATL::CStringT<char,class StrTraitMFC<char,class ATL::ChTraitsCRT<char> > >::Replace' : Keine überladene Funktion akzeptiert 1 Parameter
c:\Dokumente und Einstellungen\Mother\Eigene Dateien\Visual Studio-Projekte\Kasse\Kasse\InventoryDlg.cpp(57): error C2146: Syntaxfehler : Fehlendes ')' vor Bezeichner 'm_PicturePath'
c:\Dokumente und Einstellungen\Mother\Eigene Dateien\Visual Studio-Projekte\Kasse\Kasse\InventoryDlg.cpp(55): error C2017: Ungültige ESCAPE-Sequenz
c:\Dokumente und Einstellungen\Mother\Eigene Dateien\Visual Studio-Projekte\Kasse\Kasse\InventoryDlg.cpp(55): error C2017: Ungültige ESCAPE-Sequenz
c:\Dokumente und Einstellungen\Mother\Eigene Dateien\Visual Studio-Projekte\Kasse\Kasse\InventoryDlg.cpp(55): error C2001: Zeilenumbruch innerhalb einer Konstanten


Ein slash wird als Esc-Sequenz bewertet und ich muss ja nur 1 slash ersetzen, wie zum Teufel soll ich das machen wenn der Compiler mir das ja nicht mal erlaubt. Ich ermittle denn Pfad mit LPITEMIDLIST pidl=SHBrowseForFolder(&bi), welcher eine arte open file dialog für pfad öffnet, jedoch mir nur denn Pfad mit jeweils nur einen slash zurückliefert.
 
Zuletzt bearbeitet:
Mach es, wie michaelwengert geschrieben hat:

vorne zwei Backslashes, hinten vier:

string.Replace("\\","\\\\");

Der Compiler interpretiert zwei Backslashes hintereinander in einem String als normalen, einfachen Backslash.
 
Zurück