Dateiverwaltung wann ist Datei fertig kopiert



  • Hallo@all

    Ich will im Verzeichnis WINDOWS\SPOOL\PRINTERS auf Dateien "warten", die über das Netztwerk rüberkopiert werden.
    Mit der Funktion findfirst finde ich auch die eingehenden Dateien.

    findfirst zeigt die Datei ja schon zu beginn des kopiervorgangs an 😞

    Das Problem:
    Woran erkenne ich, dass die Datei auch wirklich fertig kopiert worden ist?

    Erst dann kann ich mit der Datei arbeiten.

    //---------------------------------------------------------------------------
    
    #pragma hdrstop
    
    //---------------------------------------------------------------------------
    
    #pragma argsused
    
    #include <dir.h>
    
    //int findfirst(const char *pathname, struct ffblk *ffblk, int attrib);
    
    int haltepunkt=1;
    
    int main()
    {
    
      struct ffblk f;
    int done = findfirst("\\WINDOWS\\SPOOL\\PRINTERS\\*.*", &f, FA_HIDDEN | FA_SYSTEM);
    while (!done)
    {
      printf("%10u %2u:%02u:%02u %2u/%02u/%4u %s\n",
        f.ff_fsize,
        (f.ff_ftime >> 11) & 0x1f,
        (f.ff_ftime >>  5) & 0x3f,
        (f.ff_ftime & 0x1f) * 2,
        (f.ff_fdate >>  5) & 0x0f,
        (f.ff_fdate & 0x1f),
        ((f.ff_fdate >> 9) & 0x7f) + 1980,
        f.ff_name);
      done = findnext(&f);
    }
    
            return 0;
    }
    //---------------------------------------------------------------------------
    


  • nur so ein gedanke: halte lieber lokal alle drucker an, sonst werden deine fertig kopierten auftraege gleich gedruckt.



  • Dieser Thread wurde von Moderator/in c.rackwitz aus dem Forum ANSI C in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Ich kann mir denken was du damit vorhast, und dir wohl eher den tip geben einen loaklen druckertreiber zu programmieren bzw einen Druckprozesser der dann die daten empfängt und dann die lokale spooldatei bearbeitet und dann auf dem richtigen drucker mit dem richtiger druckprozessor ausgibt. bei weiteren Fragen einfach posten.... Habs nämlich schon gelöst, für meine eigene Software...



  • Du kannst es nur erkennen, indem Du versuchst diese zu öffnen. Dazu muss natürlich der schreibende das öffnen entsprechend verhindern, wenn er noch nicht fertig ist (also ohne Shares erzeugen).


Anmelden zum Antworten