Autor Beitrag
spoof
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48



BeitragVerfasst: Sa 23.11.13 15:29 
Hey, hab ein Problem!

Ich versuche mich gerade daran eine Datei aus dem Internet zu laden mit idhttp, was auch funktioniert, allerdings nur wenn ich die Datei unter C speicher.
Wenn ich die Datei jetzt so speichern möchte im Pfad der exe:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
pfad:=ExpandFileName(ParamStr(0)); //pfad der ausgeführten exe
pfad:=ExtractFileDir(pfad)+'\test.jpg';  //pfad ohne exe + speichername der datei

fn := pfad; //speicherort


Dann bekomm ich diese Fehlermeldung:

"C:\users\pcname\desktop\ordner\test.jpg kann nicht erstellt werden. Zugriff verweigert.
Was mach ich falsch?

Als ich so gespeichert hab hat es funktioniert:

ausblenden Delphi-Quelltext
1:
fn := 'C:\test.jpg';					


aber eben nur unter C.

Edit: liegt wohl an meinem pc bei einem freund geht es!
GuaAck
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 376
Erhaltene Danke: 32

Windows 8.1
Delphi 10.4 Comm. Edition
BeitragVerfasst: Sa 23.11.13 23:46 
Hallo spoof,

a) Gibt es denn das in der Fehlermeldung angegebene Verzeichnis?
Die meisten File-Routinen können zwar eine Datei neu anlegen, aber kein neues Verzeuichnis, dass muss man selbst machen.

b) Könntest Du in das Verzeichnis eine beliebige Datei hinein kopieren?

c) Warum das ExpandFileName? (Schadet wohl auch nicht, aber Paramstr[0] gibt ja Pfad + Name zurück. ExpandFilename wird ja nur gebraucht, wenn nur der relative Pafad (..\xx\yy\) bekannt ist.)

Gruß
GuaAck
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 24.11.13 11:45 
Im Pfad der Exe ist ohnehin keine gute Idee, da du dort normalerweise (außer wenn sie wie bei dir auf dem Desktop liegt) keine Schreibrechte hast. Deshalb solltest du es dir gleich angewöhnen im richtigen Ordner zu speichern.
Bei einem solchen Download entweder im Anwendungsdatenverzeichnis oder im temporären Verzeichnis, je nachdem ob du die Datei dauerhaft speichern willst oder nur temporär brauchst.

Mehr zu dem Thema hier:
www.delphi-library.d...ewtopic.php?p=548600

Der Quelltext soweit du ihn gepostet hast funktioniert jedenfalls eigentlich. Wie sieht denn der Rest davon aus? Vielleicht erstellst du zweimal einen Zugriff auf die Datei oder so.
spoof Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48



BeitragVerfasst: Mo 25.11.13 18:02 
Ein kollege hat es bei sich ausprobiert bei ihm geht es.
Ja es gibt den Pfad wo gespeichert werden soll, es muss an irgendwelchen Windows 7 Einstellungen von meinem Pc liegen dass ich keine Scheibrechte hab oder so, es geht nur bei mir nicht.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 25.11.13 23:26 
Bleibt nur mit dem Process Monitor von Sysinternals/Microsoft zu schauen was genau bei dem Dateizugriff passiert.

Außerdem kannst du natürlich mal einfach nach den Rechten auf dem Ordner schauen.
Hochhaus
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 662
Erhaltene Danke: 8

Windows 7
Delphi XE2
BeitragVerfasst: Fr 13.12.13 19:50 
user profile iconspoof hat folgendes geschrieben Zum zitierten Posting springen:
Hey, hab ein Problem!


Hast Du es schon wahlweise mit Administrator-Rechten und einem gewöhnlichen User probiert ?

Hochhaus
drstar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 79
Erhaltene Danke: 2

Windows 8.1/x64
Delphi 10.1
BeitragVerfasst: Di 29.04.14 13:09 
ich weiß zwar nicht, welche Delphi-Version Du verwendest, aber das "users" macht mich argwöhnisch. Bin mit Delphi 7 bei diesen symb. Links schon auf die Nase gefallen. Probiere mal "C:\Benutzer\pcname\Desktop\Ordner\bild.jpg" anstelle von "users". Würd mich nicht wundern, wenn es daran liegt. An den Admin-Rechten dürfte es nicht scheitern, denn wenn er im Root von C: speichern kann, hat er wohl die nötigen Rechte, um auch auf dem Desktop zu speichern.