AutoIt bricht ohne ersichtlichen Grund beim Kopiern von Datein ab (FileCopy)

  • Man kopiert größere Mengen von Datein mit Autoit z.B. in eine RAM Disk. Mal gehen 20.0000 Datein dann wieder nur 7.500. Die Ram Disk hat mehr als ausreichend Platz (1GB die Dateien bringen es nur auf 400-500 MB) Die Größe der Einzeldateien ist jeweils identisch. Ich habe ehrlich gesagt einige Stündchen gesucht - bis ich auf die Lösung kam. Der Satz Dateinen (7.500 Stücj) hatte den gleichen Inhalt aber wesentlich längere Dateinamen, jedoch alles < 220 für den ganzen Pfad). Trotzdem, die langen Namen sind das Problem. Mit langen Namen passen nur 7.500 Dateien in ein Verzeichnis auf der RAM Disk. Schuld ist also die RAM Disk, nicht Autoit. Wenn man die Datein auf mehrere Verzeichnisse verteilt ( je ca. 7000) funktioniert das ganze.

    Peter


    Ps.: Wenn sich jemand wundert weshalb ich mir die Frage gleich selbst beantworte - so lässt sich die Problemlösung für andere "sichern" ?

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Bei sehr langen Pfaden gehe ich gerne hin und verkürze diese... via HARDLINK, SUBST ODER PUSHD/POPD... das macht nebenher auch noch die Ausgaben übersichtlicher...

    Z. B. so...

    AutoIt
    Local $iNTFSLink = FileCreateNTFSLink('f:\Audio\MP3\International\S\Scorpions Discography\2000 - Scorpions - Moment Of Glory (With Berliner Philharmoniker)', 'f:\Scorpions', $FC_NOOVERWRITE)
    If FileCopy($iNTFSLink & '\*.*', 'e:\AUDIO\Scorpions', $FC_NOOVERWRITE + $FC_CREATEPATH) = 0 Then Exit ConsoleWrite('Ops, Fehler beim Kopieren...' & @CRLF & '--> ' & $iNTFSLink & @CRLF) +1
  • Danke für die Tips,
    ich hatte vielleicht vergessen, zu erwähnen, dass ich die langen Dateinamen selbst produziere, da ich sie als "Vehikel" benutze um Daten zwischen zwei Programmen zu "transportieren". Da stehen vollständige Adressen, usw darin, werden im nächsten Programm ausgelesen und auf ein vernünftiges Maß eingekürzt, Aber auf dem Weg dorthin landen die, weil signifikant schneller, in einer RAM Disk.

    Übrigens macht autoit das wirklich anständig. Auf einer NTFS Platte problemlos einige 10.0000 Dateien... (Mehr habe ich noch nicht probiert :) bzw. fallen nicht an)

    Übrigens scheint es die gleichen Beschränkungen nicht nur in einer RAM Disk zu geben, sondern auch auf dem einen oder anderen FAT 32 formatierten USb Stick.

    Gruß

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Daten zwischen zwei Programmen zu "transportieren"

    Dann schau mal, ob dir das nicht besser gefällt... musst du natürlich noch an deine Bedürfnisse anpassen. Eine weitere Alternative wäre via TCP/UDP zu kommunizieren...

    Welche RAMDISK benutzt du denn? Habe schon einige getestet, die hatten aber alle unverzeihliche Macken. Benutze nun seit längerem "ImDisk Toolkit" und bin sehr zufrieden damit, zumal du damit auch 'dynamische' RAMDISKs erstellen kannst.

    FAT32
    ----------------------------------------------------------
    Maximum disk size: 2 terabytes
    Maximum file size: 4 gigabytes
    Maximum number of files on disk: 268,435,437
    Maximum number of files in a single folder: 65,534


    NTFS ("New Technology File System")
    ----------------------------------------------------------
    Maximum disk size: 256 terabytes
    Maximum file size: 256 terabytes
    Maximum number of files on disk: 4,294,967,295
    Maximum number of files in a single folder: 4,294,967,295

    Der Explorer und viele andere Programme, die sich am Explorer orientieren, machen allerdings schon weit vorher schlapp.

    CopyDataRcv - der Empfänger
    SendMessage - der Sender

    Einmal editiert, zuletzt von Bitnugger (22. Oktober 2016 um 17:25)

  • Hmmm ich trau mir das gar nicht sagen. Ich benutze das Teil schon seit 13 Jahren. Auf mehreren dutzenden verschiedenen Rechnern. Ich glaube die war mal von MS.Zumindest legt ein Hinweis in der install.inf das Nahe Copyright by MS. Läuft als NTFS oder Fat32. Ich kann mich nicht errinern, das die jemals Zicken gemacht hätte. ISt aber klassisch. Wenn Strom weg - Daten weg. Es gibt ja auch welche die den Inhalt "Chachen". Aber ich wollte tatsächlich so ein "altmodisches Teil" Strom weg Daten weg. Größe ist anpassbar von wenigen K bis über GB. Habe das aber nie wirklich probiert. Bis vor kurzem immer mit so 350 MB. Nun habe ich z.Z. 1GB funktioniert auch reibungslos. Nur nach Größenumstellung --> ist ein Reboot. ist erforderlich. Ich geh davon aus dass das mal Freeware war. Man brauchte nie einen Schlüssel, Beschränkungen in Form von Copyright bei der Installation gibt es auch nicht.

    Für manche read /write Operationen ist eine RAM Disk Gold wert. Ich habe einige Scripte am laufen mit relativ großen Mengen kleiner Files, aufmachen, reinschauen, Daten entnehmen, pdf verwandeln, mergen usw. Das geht in dem Teil 50 x Schneller als sonst. Kopieren der Dateien eingerechnet.

    Gruß Peter.


    Ps.: Wenn Du interesse hast kann ich Dir die gerne mal packen. Ich habe aber keine Ahnung was bei BS > xp passiert. Ich bin unverbesserlicher xpler.

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Danke, ist lieb gemeint, aber XP ist für mich schon lange keine Option mehr und auch wenn die MS-RAMDISK auf Win 10 laufen sollte, wäre sie für mich uninteressant, weil sie nicht dynamisch* ist und es davon auch höchstwahrscheinlich keine 64-Bit-Version gibt, die eine max. Größe > 3,5 GB erlaubt.

    Meiner RAMDISK benutze ich als temporäres Verzeichnis für den Browser-Cache (Firefox), zum Archive ent-/packen, Musik/Videos transkodieren, und für diverse Laufzeitdaten für Scripte, z. B. Playlisten.

    * die RAMDISK belegt immer nur so viel RAM, wie sie an Inhalt hat... und wächst mit dem Inhalt dynamisch an.

  • Ja mache ich ähnlich. Jeder Krempel, der abends nicht mehr interesiert. Man gewöhnt sich auch schnell daran, und ist ganz verblüfft wenn auf einem Rechner keine RAM Disk ist. Und manches geht in der RAM Disk so schnell - dass man ganz "fertig" ist wenn es auf einer "normalen" Disk laufen muss.


    Gruß

    Peter.

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)