Hallo zusammen!
Ich versuche hier mittels eines eigenen Delphi-Programmes eine vorhandenen Verzeichnisbaum zu bearbeiten.
Dieser Verzeichnisbaum hat nur leider die unangenehme Eigenschaft, sehr tief geschachtelt zu sein. Dadurch ergeben sich Pfadnamen, die deutlich länger als 260 Zeichen sind. Mit solchen Längen habe alle möglichen Programme Probleme. Nur die MS-eigenen nicht. Insbesondere der Windows-Explorer und das Office-Paket (zumindest ab 2000) arbeiten damit einwandfrei.
Deshalb hat wohl auch in all den Jahren niemand hier gemerkt, dass diese Struktur etwas suboptimal ist...
Mir ist klar, das NTFS grundsätzlich die Pfadlänge zunächst auf MAX_PATH (=260) Zeichen begrenzt und nur über die Unicode-Bibliotheken mehr kann.
Ich habe mich nun schon durch alle möglichen Dateifunktionen gewühlt.
Mit CopyFileEx (Unicodeversion mittels '\\?\') kann ich z.B. auch kopieren. Nur muß das Zielverzeichnis dann schon existieren.
Leider kann MkDir solche Verzeichnisse nicht anlegen.
Mit ShFileOperations komme ich auch nicht weiter. Trotz ausreichend groß dimensionierter Puffer (Beispiel von A.Kosch hier aus dem Forum kopiert), tritt ein Fehler auf und es passiert nichts weiter.
Die Aussage, ShFileOperations würde von Windows selbst verwendet, kann so nicht stimmen, da der Explorer und Office wunderbar arbeiten, mein Programm (und andere) nicht.
Gibt es noch irgendwo eine zugängliche Funktion? Kann man den Windows-Explorer vielleicht irgendwie ein ein Delphi-2007-Programm einbinden?
verzweifelt,
nextX
Ich versuche hier mittels eines eigenen Delphi-Programmes eine vorhandenen Verzeichnisbaum zu bearbeiten.
Dieser Verzeichnisbaum hat nur leider die unangenehme Eigenschaft, sehr tief geschachtelt zu sein. Dadurch ergeben sich Pfadnamen, die deutlich länger als 260 Zeichen sind. Mit solchen Längen habe alle möglichen Programme Probleme. Nur die MS-eigenen nicht. Insbesondere der Windows-Explorer und das Office-Paket (zumindest ab 2000) arbeiten damit einwandfrei.
Deshalb hat wohl auch in all den Jahren niemand hier gemerkt, dass diese Struktur etwas suboptimal ist...
Mir ist klar, das NTFS grundsätzlich die Pfadlänge zunächst auf MAX_PATH (=260) Zeichen begrenzt und nur über die Unicode-Bibliotheken mehr kann.
Ich habe mich nun schon durch alle möglichen Dateifunktionen gewühlt.
Mit CopyFileEx (Unicodeversion mittels '\\?\') kann ich z.B. auch kopieren. Nur muß das Zielverzeichnis dann schon existieren.
Leider kann MkDir solche Verzeichnisse nicht anlegen.
Mit ShFileOperations komme ich auch nicht weiter. Trotz ausreichend groß dimensionierter Puffer (Beispiel von A.Kosch hier aus dem Forum kopiert), tritt ein Fehler auf und es passiert nichts weiter.
Die Aussage, ShFileOperations würde von Windows selbst verwendet, kann so nicht stimmen, da der Explorer und Office wunderbar arbeiten, mein Programm (und andere) nicht.
Gibt es noch irgendwo eine zugängliche Funktion? Kann man den Windows-Explorer vielleicht irgendwie ein ein Delphi-2007-Programm einbinden?
verzweifelt,
nextX
Comment