![]() |
Pfad nimmt String nicht.
Hallo zusammen.
Ich habe bei einem Programm eine Datei die ich mit copy kopiere und vorher mit if fileexists prüfe. Wenn ich den Pfad der Datei als 'C:\ user.......' angebe dann klappt alles wie es soll( bitte verzeiht mir das ih hier nicht das genaue kopiere bin mobil online) Benutze ich nun meine variable: username die genau den gleichen Inhalt hat , den ich auch benutze wenn ich die Abfrage direkt im Programm eingebe ('C:\' + username+ '....' statt 'C:\Christoph......' ) funktionieren die Befehle nichtmehr. Iffileexist gibt auf einmal false aus obwohl username zumindest unter meinem Benutzer genau dem String 'Christoph' enthält. Kann mir jemand helfen? Lg Christoph |
AW: Pfad nimmt String nicht.
Den Pfad am Besten als special folder ermitteln
|
AW: Pfad nimmt String nicht.
Zitat:
Ich brauche NUR den Benutzername als String der Rest ist immer gleich, und es ist ein Ordner den ich denke ich nicht als Special Folder bekomme. |
AW: Pfad nimmt String nicht.
Schuss ins Blaue: Die Variable username enthält noch das Stringendezeichen (#0) am Ende.
Nichts desto trotz solltest du den Pfad mit genannter Funktion ermitteln. Bei mir gibt es den Ordner C:\Users nämlich nicht (Windows XP). |
AW: Pfad nimmt String nicht.
such einfach mal nach SHGetSpecialFolderLocation
|
AW: Pfad nimmt String nicht.
Zum beispiel so (Kopie, nicht mein Code)
Delphi-Quellcode:
uses
ShlObj, ActiveX, ShellApi; { ... } function GetSpecialFolder(const AFolder: Integer): String; var ItemIDList: PItemIDList; hPath: PChar; ShellH: IMalloc; begin if SUCCEEDED(SHGetSpecialFolderLocation(Application.Handle, AFolder, ItemIDList)) then begin try hPath:= StrAlloc(max_path); try if SHGetPathFromIDList (ItemIDList, hPath) then Result:=hPath; finally StrDispose(hPath); end; finally if SHGetMalloc(ShellH) = NOERROR then ShellH.Free(ItemIDList); end; end else RaiseLastOSError; end; |
AW: Pfad nimmt String nicht.
Ich bekomme solche Probleme immer heraus, indem ich mir den entgültigen String (Pfad) genau anschaue.
Also anstatt
Delphi-Quellcode:
eben ein
Copy ('C:\User\'+username+'\foobar'...)
Delphi-Quellcode:
Dieser Tipp ist zusätzlich (und unabhängig) zu den vorherigen gemeint. Denn richtig richtig ist es nur dann, wenn man sich von Windows den Benutzerpfad geben lässt.
DateiPfad := 'C:\User\'+username+'\foobar';
Copy (DateiPfad...) |
AW: Pfad nimmt String nicht.
|
AW: Pfad nimmt String nicht.
Also erstmal nochmal danke an alle, es handelte sich bei mir um ein Formatierungsproblem. Habe den String mal in ein Edit schreiben lassen mit edit1.Text:=username; und dann mit username:=edit1.Text; wieder ausgelesen, dann klappt es bizarrerweise.
Edit: Werde mir die genannten Funktionen mal ansehen um es allgemeingültig hinzubekommen! |
AW: Pfad nimmt String nicht.
Dann kannst Du Dir auch
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz