![]() |
MAX_PATH - Wie Datei kopieren oder Path kürzen?
Ich möchte gerne Dateien kopieren. Das klappt wunderbar, bis aber eine Datei kommt deren Dateiname länger als MAX_PATH ist.
Jetzt weiß ich nicht, ob die komplette Länge von z.B. "C:\meni_verzeichnis\verzeichnis2\verzeichnis3\dat ei.txt" geprüft wird, oder nur die Dateinamen-Länge von "datei.txt". Wie dem auch sei: ein paar Dateien haben so lange Namen, dass nicht kopiert werden kann. Wie kann ich die Dateien trotzdem kopieren? Meine erste Idee: Prüfen, ob Dateiname > MAX_PATH ist und wenn ja, den Dateinamen in das 8.3 DOS-Format umwandeln. Oder bin ich auf dem Holzweg? |
AW: MAX_PATH - Wie Datei kopieren oder Path kürzen?
Die
![]() Zitat:
|
AW: MAX_PATH - Wie Datei kopieren oder Path kürzen?
Ich benutze BlockRead und BlockWrite (für große Dateien mit callback) und an anderer Stelle SHFileOperation für kleine Dateien unter 10MB.
Darf man da trotzdem "\\?\" vor den Namen hängen? |
AW: MAX_PATH - Wie Datei kopieren oder Path kürzen?
Zitat:
|
AW: MAX_PATH - Wie Datei kopieren oder Path kürzen?
Nochmal zum Nachlesen:
![]() Zitat:
|
AW: MAX_PATH - Wie Datei kopieren oder Path kürzen?
SHFileOperation scheint nicht damit kompatibel zu sein.
Ich habe nun von SHFileOperations auf IFileOperation umgesattelt. Genauer gesagt wird, wenn das Programm mindestens unter Windows Vista ausgeführt wird, IFileOperation verwendet. Sonst SHFileOperation. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:57 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 by Thomas Breitkreuz