Datei kopieren, Zeitraum dafür aber sehr kurz

Mitglied: 16568

16568

17.08.2006, aktualisiert 18.08.2006, 7303 Aufrufe, 8 Kommentare

Ja, ich weiß, doofer Titel, aber ich weiß nicht, wie ich das sonst am Besten formulieren soll.

Ich habe einen Ordner, in dem 2 Dateien abgelegt werden.
Die eine Datei ist nicht bekannt.
Der Zweite ist bekannt.

Jetzt bin ich schon seit 4 Stunden auf der Suche nach einer Lösung, wie ich die Dateien in ein anderes Verzeichnis kopieren kann.

Der Trick dabei:

Die Dateien sind vielleicht eine viertel-Sekunde da (temp-Datei, eine davon hat sogar das Format: xxx~, also keine Dateiendung, und am Ende eine Tilde :-( face-sad )

Es ist für mich aber außerordentlich wichtig, an die beiden Dateien zu kommen.
Denn in den beiden Dateien hoffe ich die Antwort auf meine Frage zu finden, wieso ein von mir erstelltes Programm die Dateien nicht richtig ablegt, wo es soll. Auf den anderen bisher getesteten Rechnern hingegen funktioniert das TADELLOS *grrrr*

@Biber: God of Batch, ich beziehe Dich auch in mein Nachtgebet ein :-D face-big-smile


Lonesome Walker
edit:
Es ginge auch, wenn der Ordnerinhalt nicht mehr gelöscht werden könnte.
Nach dem Motto: reinschreiben darf mein Programm, nur rauslöschen darf keiner mehr...

Geht das???
Mitglied: cykes
17.08.2006 um 07:28 Uhr
Hi,

so eine spontane Idee, vielleicht kannst Du beim Starten Deine Programms
einfach die Task Priorität runterschrauben, so daß es etwas langsamer läuft.
Oder lass doch mal den Debugger Schritt-für-Schritt drüberlaufen (ist bei grossen
Projekten sicher nervig, aber manchmal geht's ned anders) ;-) face-wink

Gruß

cykes
Bitte warten ..
Mitglied: Supaman
17.08.2006 um 08:54 Uhr
könnte man das nicht über dateirechte lösen? soweit ich weis, gibt es für lesen, erstellen, ändern und löschen einzeln zu vergebende rechte.. also für den user der das programm ausführt bzw den ordner die löschen-rechte entfernen.
Bitte warten ..
Mitglied: 16568
16568 (Level 4)
17.08.2006 um 10:46 Uhr
@cykes: LOL, das Debuggen hat er direkt abgebrochen; ich liebe VS 2005...
@Supaman: Nein, das läßt sich so nicht lösen, denn dann wird zwar die Datei gerade noch erstellt, die bleibt dann aber leer. Ich habe aber schon gesehen, daß die 3kB groß war.


Lonesome Walker
Bitte warten ..
Mitglied: Biber
17.08.2006 um 11:52 Uhr
Moin Lonesome Walker,

das wird schwierig, fürchte ich.

Versuchen könnetest Du, mit einem Endlos-Batch diese Dateien zu sichern.
Der kleine Schnipsel unten würde, wenn er einmal gestartet ist, in einer Endlosschleife
alle vorhandenen Dateien größer 0 Byte aus einem Verzeichnis %LSWtemp% in ein Verzeichnis %LSWSik%
kopieren. Und bei den Zieldateien einen Timestamp dranhängen.

Da es kein Kriterium gibt, dass diese Endlosschleife "fertig werden" lässt, habe ich es mit einer Flag-Datei gelöst.

Der untenstehende batch müsste also so gehandhabt werden:
- wenn Dein Temp-Datei-erzeugendes Programm gestartet wird, parallel ein CMD-Fenster öffnen.
Dort eingeben:
Start /min [Pfad\]LswSaveTemps.bat
Im Hintergrund läuft jetzt der Batch und kopiert und kopiert und kopiert....
Wenn es genug ist, dann vom CMD-Prompt abschicken:
echo x>%temp%\stop
..dann endet der Batch.
[Alternativ könntest Du natürlich im Batch prüfen, ob Dein Programm noch in der Liste der laufenden Prozesse ist.
..und das als Abbruchkriterium nehmen.

Egal, hier die Rohfassung des LSWSaveTemps.bat. Das GROSSgeschriebene "@ECHO" muss wieder zum Scharfmachen gelöscht werden.



Demo am CMD-Prompt (ohne START-Schalter "/MIN", damit was zu sehen ist):

Im Hintergrund öffnet sich ein zweites CMD-Fenster, in dem endlos so etwas scrollt:

Soweit dieser Ansatz.
Allerdings fürchte ich, dass es daran scheitern wird, dass diese Tempdateien ja NEU angelegt werden und das vermutlich mit der Mimik
nHandle = FCreate(...) --->von diesem Zeipunkt an ist die Datei da, aber mit Größe 0 Byte
FWrite( nhandle,.....)
....
...
FWrite( nhandle,.....) ------------> auch wenn jetzt ganz viel geschrieben wurde: immer noch 0 Byte im Dateisystem
FClose(nHandle) -------->und erst hier hat die Datei eine Größe > 0 Byte

Es kommt also darauf an, ob die Programmierer deines Proggis den Inhalt dieser Temp-Datei anderen Programmteile als Datei zugänglich machen wollten ( dann existiert die Tempdatei mit einer Größe > 0 Byte für einen spürbaren Zeitraum) oder ob sie nur das Dateihandle weiterreichen... dann hat die Datei durchgehend bis zum FClose() eine Größe von 0 Byte und das Kopieren wird nix.

Hope That Helps
Biber
Bitte warten ..
Mitglied: 16568
16568 (Level 4)
17.08.2006 um 15:27 Uhr
Danke Biber.

Folgende Situation:

Das Prog habe ich selbst geschrieben :-D face-big-smile
Von daher bin ich bald am Ausrasten, weil es eben nur auf meiner Kiste die temporäre Datei erzeugt, anstelle direkt im richtigen Verzeichnis, wie ich's eigentlich festgelegt hatte.

Die Datei ist je nach verarbeiteter Datenmenge mal größer als 1-2kB, mal kleiner...
Ich habe gestern/heute morgen eine laaange Batch erstellt, nach dem Motto copy C:\temp\*.* C:\temp\copy\*.*

Hat wunderbar funktioniert, bis auf den Fehler, daß auf die Datei gerade nicht zugegriffen werden kann, weil sie gerade von einem anderen Prozeß verwendet wird.

Das VS2005 habe ich auch neu installiert, trotzdem ist ein Debuggen unmöglich (einmal sogar einen Bluescreen *ironisch-freu*)

Im Endeffekt sollte nur eine Textdatei mit einem bestimmten Inhalts-Format erstellt werden, und dies in einem vordefinierten Ordner (logisch, mein Applikationsordner).
Überall anders wird die Datei zuerst im Applikationsordner angelegt, dann mit Inhalt gefüllt, dann geschlossen.
Nur bei mir hier zickt er rum.

Da ich eine zukünftige Funktionalität aber gerne bestätigt hätte, würde ich dem Problem gerne auf den grunud gehen.

Das mit Ordner-Berechtigung habe ich schon längst durch, der erstellt dann die Datei, kann aber nix mehr reinschreiben *mistaberauch*


Lonesome Walker
Bitte warten ..
Mitglied: cykes
18.08.2006 um 08:43 Uhr
Dann musste wohl nen Praktikanten (is ja grad modern...) mit einem TEMP-Dateien-Kescher
anstellen *kleiner Scherz*

Vielleicht hilft Dir dieses PC-Welt Tool: http://www.pcwelt.de/downloads/heft-cd/06-06/137147/index.html


Gruß

cykes

[EDIT] Habe hier noch ein Tool gefunden, das könnte eher helfen:
http://www.bestsoftware4download.com/software/t-free-allsync-download-a ...
bzw. http://www.allsync.biz/en_index.htm
Bitte warten ..
Mitglied: 16568
16568 (Level 4)
18.08.2006 um 10:14 Uhr
Das mit dem Praktikanten: IDEE!!!:-D face-big-smile

Das Tool is zwar lustich, weils funktioniert; aber es kann mir die Datei auch nicht kopieren :-( face-sad


Trotzdem danke.

Lonesome Walker
PS: *praktikantensuch*
Bitte warten ..
Mitglied: cykes
18.08.2006 um 10:47 Uhr
auch das Tool in dem [EDIT] nicht? Das erste macht glaub nur logging, wie ich vorhin festgestellt habe, das zweite ist eine Synchronisierungs-Software.
Insbesondere hat diese das Feature, wenn in dem überwachten/synchronisierten Ordner eine Datei gelöscht wird, sie im Sync-Ordner in den Papierkorb zu verschieben, wo man sie natürlich wieder rausholen kann.... Vielleicht hilft das ja ...
Bitte warten ..
Heiß diskutierte Inhalte
LAN, WAN, Wireless
Starlink im Unternehmen?
0xFFFFVor 1 TagFrageLAN, WAN, Wireless42 Kommentare

Guten Morgen Admins, leider leiden wir darunter, dass wir uns hier in DE noch in einem Entwicklungsland was die Internetanbindung angeht, sehr. Nun kam ...

Off Topic
Klimaanlage im Serverraum
gelöst imebroVor 1 TagFrageOff Topic20 Kommentare

Hallo, wir haben einen kleinen Serverraum (viell. 5 - 6 m²), in dem ein Serverschrank steht. Der Raum hat kein Fenster!!! Darin befinden sich ...

Windows 10
Windows 10 hängt bei Neustart immer bei "Bitte warten" über Stunden
gelöst Odde23Vor 1 TagFrageWindows 1023 Kommentare

Ich habe seit längerem, um genau zu sein seit gut einem Jahr, da wurde der Rechner gekauft, das Problem, dass der Rechner bei einem ...

Microsoft
Meine Gruppenrichtlinie wird nicht angewendet oder ich bin zu dumm
gelöst RandonDudeVor 1 TagFrageMicrosoft16 Kommentare

Hallo zusammen, ich bin Hobby-Admin für einen Versicherungsmakler. Wir haben ein Active Directory im Einsatz. Ich möchte verhindern, dass sich Benutzer an PCs anmelden, ...

Weiterbildung
Das Impostersyndrom oder: "Was kann ich eigentlich?"
AnduinVor 1 TagFrageWeiterbildung7 Kommentare

Werte Mitadmins, ich würde mich heute gerne mit einem mir wichtigen Thema an euch wenden. Ich bin 40 Jahre alt und seit 21 Jahren ...

Windows 10
Dokumentenanzeige auf 2.Bildschirm
gelöst Rico.lehmann93Vor 1 TagFrageWindows 107 Kommentare

Hey Leute, ein Kunde von uns sucht eine Möglichkeit Mietverträge dem Kunden auf einem Bildschirm anzeigen zu lassen. Auf dem Bildschirm soll aber wirklich ...

Windows Server
Igel + Terminalserver + VoIP + Softphone
Asgard-LokiVor 1 TagFrageWindows Server13 Kommentare

Gude Kolleginnen und Kollegen, ich habe da mal eine Frage zu einem Thema was für mich relativ neu ist. Wir wollen unsere Telefonie gerne ...

Windows Server
Zwei Netzwerkkarten im Server
gelöst Big.TurboladerVor 1 TagFrageWindows Server4 Kommentare

Hallo allerseits, ich habe ein Windows Server 2016 in einer VM erstellt um mein Wissen zu erweitern. Doch jetzt hänge ich an einem Problem ...