Dateien mit überlangen Dateinamen kopieren

#0
06.01.2008, 14:39
Member
Avatar Xeper

Beiträge: 5291
#16

Zitat

Managor postete
Die Sache mit der Netzfreigabe klingt auch vielversprechend, aber das sind ja schon alles Netzfreigaben. Und die Unordnung ist so groß, dass der Zeitaufwand auch viel zu hoch wäre.

Aber Robocopy scheint perfekt zu sein. Mal sehen, ob es klappt... ich weiß noch niht, ob ich das morgen schon gleich mache, aber in der nächsten Zeit wird es passieren und dann sag ich bescheid.
Warum schreibst du nicht etwas kleines via Perl oder Python - diese Sprachen sind beide auch vollkommen Windows kompatibel.
Du könntest dann die Änderungen in eine sqlite etc. DB schreiben die das Äquivalent zu den kürzeren enthält. (falls du dies benötigst)
__________
E-Mail: therion at ninth-art dot de
IRC: megatherion @ Freenode
Seitenanfang Seitenende
06.01.2008, 14:44
Member
Themenstarter
Avatar Gool

Beiträge: 4730
#17 Hey... ich bin Systemintegrator, kein Anwendungsentwickler *g*
__________
Dies ist eine Signatur! Persönlicher Service: Du kommst aus Berlin? Dann melde Dich per PN bei mir, evtl. können wir einen Termin vereinbaren.
Der Grabsteinschubser
Seitenanfang Seitenende
06.01.2008, 14:49
Member
Avatar Xeper

Beiträge: 5291
#18 python's pydoc os.walk:

Zitat

os.walk = walk(top, topdown=True, onerror=None)
Directory tree generator.

For each directory in the directory tree rooted at top (including top
itself, but excluding '.' and '..'), yields a 3-tuple

dirpath, dirnames, filenames
Damit hättest du schon mal eine Art Array mit allen Dateinamen.
Das kann man dann weiter verarbeiten.

Zitat

ich bin Systemintegrator, kein Anwendungsentwickler
Hmm schade, naja vielleicht solltest du ja mindestens eine Programmiersprache erlernen - wenn du in diesem Business arbeitest wirst du feststellen das nicht nur alles dadurch einfacher wird, du mehr begreifst was du vorher nicht wahrgenommen hast - nein du kannst dir auch in vielen Situationen helfen.

Ich persönlich kenne leider keine fertigen Programme weil ich nur hauptsächlich mit UNIX Systemen arbeite, wenn ich mit windows arbeite dann sind das meistens Clients aber keine Server.
__________
E-Mail: therion at ninth-art dot de
IRC: megatherion @ Freenode
Seitenanfang Seitenende
06.01.2008, 15:02
Member
Themenstarter
Avatar Gool

Beiträge: 4730
#19 Ja klar... C++ hab ich gelernt ;) Aber ich vermeide es dennnoch, mich mit Anwendungsentwicklung aufzuhalten, zumal ich für sowas Arbeitskollegen habe, die dafür bezahlt werden *g*
__________
Dies ist eine Signatur! Persönlicher Service: Du kommst aus Berlin? Dann melde Dich per PN bei mir, evtl. können wir einen Termin vereinbaren.
Der Grabsteinschubser
Seitenanfang Seitenende
06.01.2008, 15:05
Member
Avatar Xeper

Beiträge: 5291
#20

Zitat

Ja klar... C++ hab ich gelernt
C++ ist mächtig und seit ca 20 Jahren Industriestandard - allerdings zu mächtig und zu schwierig für eine einfache Kreation eines Werkzeugs.
Aber wenn du C++ kannst dann wirst du auch das OO Paradigma können, dann kannst du dich auch sehr leicht in sowas wie Python versetzen - bis auf einigen global def's (aka functions) ist alles in Python OO.
Nur die Syntax ist nicht BCPL ähnlich sondern kommt von SmallTalk (man sagte mir auch es habe Einflüsse von Modula).
Dann sag deinen Kollegen halt du brauchst ein Tool was dir schnell alle Dateinamen die länger sind als X umbennent und die Änderung lesbar abspeichert ;)
__________
E-Mail: therion at ninth-art dot de
IRC: megatherion @ Freenode
Seitenanfang Seitenende
07.01.2008, 12:46
Member

Beiträge: 3306
#21 Das Problem liegt wohl viel mehr an den zu langen Pfaden. Bei einem Server kann man sich gut vorstellen wie das entsteht. Der Server hat lokal irgendeinen Pfad C:\Public\Users\Sales\JoeDoe\ Davon weiß Joe nichts weil der verwendet den Pfad als Netzlaufwerk also z. B. H: und kann dann Pfadnamen anlegen die aus Serversicht größergleich 260 Zeichen sind. Das ist nicht wirklich etwas neues:
http://support.microsoft.com/kb/q177665/

Zitat

Windows 95- und Windows NT 4.0-Clients können eine Server-Verzeichnisstruktur über MAX_PATH hinaus (256 Zeichen) erweitern, indem Sie auf eine Server-Freigabe zugreifen und über das Netzwerk Verzeichnisse und Dateien erstellen.

Daraus folgt, dass ein Server, auf dem Windows NT 4.0 ausgeführt wird, die folgende Fehlermeldung ausgibt, wenn der Serveradministrator versucht, auf diese Dateien oder Verzeichnisse lokal über den Windows NT Explorer zuzugreifen: Auf diesen Ordner kann nicht zugegriffen werden. Pfad ist zu lang.
Um nur an ein oder zwei Files ranzukommen kann man natürlich mit subst, net use, Junction Points, Symlinks usw arbeiten aber einen programatischen Lösungsweg gibt es wohl eher nicht. Die einzige Möglichkeit wäre stupide Ordnernamen zu kürzen bis der Pfad kurz genug ist, aber das zerstört natürlich die Übersicht.

Das Pfadnamen nur bis 260 Zeichen funktionieren ist Windows API bedingt und liegt nicht etwa am NTFS Dateisystem das bis zu 32.000 Zeichen lange Pfade verwalten kann. Wenn man über 260 Zeichen hinausgehen will muss man "nur" die Unicode Funktionen der Windows API verwenden was Robocopy wohl tut und Tools wie xcopy oder auch der Explorer eben nicht:
https://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/naming_a_file.asp

Zitat

Maximum Path Length

In the Windows API, the maximum length for a path is MAX_PATH, which is defined as 260 characters. A path is structured in the following order: drive letter, colon, backslash, components separated by backslashes, and a null-terminating character, for example, the maximum path on the D drive is "D:\<256 chars>NUL".

Note Functions in the Windows API convert "/" to "\" as part of converting the name to an NT style name.

The Unicode versions of several functions permit a maximum path length of approximately 32,000 characters composed of components up to 255 characters in length. To specify that kind of path, use the "\\?\" prefix.

Note The maximum path of 32,000 characters is approximate, because the "\\?\" prefix can be expanded to a longer string, and the expansion applies to the total length.

__________
Bitte keine Anfragen per PM, diese werden nicht beantwortet.
Seitenanfang Seitenende
Um auf dieses Thema zu ANTWORTEN
bitte erst » hier kostenlos registrieren!!

Folgende Themen könnten Dich auch interessieren: