Autor Beitrag
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 01.10.08 09:21 
So, jetzt habe ich seit langem mal wieder eine Frage.

Ich bastel gerade an einem Tool zur Datensicherung, das mir Dateien auf ein externes Laufwerk kopiert.
Beim erstellen der Verzeichnisse benutze ich ForceDirectories und bekomme manchmal den Fehler 206 ("Dateiname" zu lang). Das trifft auch sicher zu, da die Anwender teilweise etwas... . Na, lassen wir das.

Ich habe jedenfalls keine Lust, mich durch die Verzeichnisbäume zu hangeln, um jedes Unterverzeichnis einzeln anzulegen. Außerdem müsste ich das Arbeitsverzeichnis dafür im Programm wechseln, was zu ungewollten Nebeneffekten führen würde.

Hat jemand eine gute Idee, wie ich ForceDirectories "ersetzen" kann?
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8553
Erhaltene Danke: 479

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mi 01.10.08 09:33 
Zu lang heißt, dass der Pfad insgesamt länger als (ca.) 248 Zeichen lang ist? Damit gibts generell Probleme. Eine Möglichkeit wäre, erstens mit der W-Variante zu arbeiten (also der Unicode-Version in der API, eine bequeme Delphi-Funktion müsste man dann selber schreiben oder aus den TNTs nehmen). Zusätzlich muss man dan afaik mit einer anderen Benennung arbeiten (also nicht c:\.. sondern diese andere...wie heißt die doch gleich, mit // oder \\ am Anfang?).

Sollte man aber mit aufpassen - Luckie hatte iirc vor kurzem in der DP einen Thread, dass er mit dem Explorer solche überlangen Verzeichnisse nicht löschen konnte, weil der Explorer genau denselben Fehler gemeldet hat. ;-)

_________________
We are, we were and will not be.
jasocul Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 01.10.08 09:49 
Die Benennung ist kein Problem, da ich sowieso die Server-Namen verwende.
Ich werde mal sehen, ob ich die Unicode-Variante finde.

Fallss noch Jemand eine andere Idee hat, immer her damit.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 01.10.08 10:34 
user profile iconjasocul hat folgendes geschrieben Zum zitierten Posting springen:
Außerdem müsste ich das Arbeitsverzeichnis dafür im Programm wechseln, was zu ungewollten Nebeneffekten führen würde.

dann arbeitets du mit realiven Pfadangaben. Dies sollte man vermeiden und nur mit absoluten Pfaden arbeiten. Damit verhinderst du in vorhinein solche Nebeneffekte.
jasocul Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 01.10.08 10:42 
Zur Zeit arbeite ich mit absoluten Pfad-Angaben.
Ich will gerade nicht mit relativen Pfaden arbeiten.

Ich habe nur die Vermutung, dass ForceDirectories mit der Gesamtlänge des Pfades nicht zurecht kommt.

Ich finde diese verdammte Unicode-Variante von CreateDirectory nicht.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8553
Erhaltene Danke: 479

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mi 01.10.08 10:51 
Bei den TNT Unicode Controls ist eine Funktion WideForceDirectories dabei. Ansonsten ist Delphi (zumindest vor der gerade erschienenen Version) ja nicht gerade bekannt dafür, eine umfassende Unicode-Unterstützung anzubieten - es kann gut sein, dass das bei Delphi direkt einfach nicht dabei ist.

_________________
We are, we were and will not be.