AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Ausgefallenes Problem, Vorgehensweise bedingtes verschieben von Dateien
Thema durchsuchen
Ansicht
Themen-Optionen

Ausgefallenes Problem, Vorgehensweise bedingtes verschieben von Dateien

Ein Thema von mcam77 · begonnen am 25. Feb 2014 · letzter Beitrag vom 25. Feb 2014
Antwort Antwort
mcam77

Registriert seit: 15. Jun 2012
1 Beiträge
 
#1

Ausgefallenes Problem, Vorgehensweise bedingtes verschieben von Dateien

  Alt 25. Feb 2014, 19:38
Hi,

ich suche eine elegante Lösung für folg. Problem:

aus einem Verz. sollen bestimmte Dateien verschoben werden(div. Voraussetzungen, ist ja egal).
Das entscheidende ist jetzt, dass nur alle(zusammengehörigen) Dateien komplett verschoben werden sollen(Virenscanner). Da die Dateien alle sehr klein sind wollte ich sie komplett in den Speicher kopieren, dann von der Quelle löschen, und wenn das geklappt hat im Zielordner erstellen. Wenn der Rechner plötzlich abstürzt und somit Dateien verloren gehen ist das nicht so schlimm. Viel wichtiger ist jetzt dass das löschen komplett klappt, damit da keine Leichen liegen bleiben(und evtl wieder verschoben werden). Wie würdet ihr da vorgehen?
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#2

AW: Ausgefallenes Problem, Vorgehensweise bedingtes verschieben von Dateien

  Alt 25. Feb 2014, 20:51
Das ist doch viel zu umständlich und fehleranfällig. Ich würde folgendes machen:

1. Versammle alle benötigten Dateinamen incl. Pfad in einer Stringliste.

2. Iteriere durch die Stringliste und benenne die Pfade um. Das Ergebnis der Umbenennung speicherst du in einer lokalen Variablen.

3. Veschiebe dabei die Dateien durch SysUtils.RenameFile.

RenameFile mit einem neuen Pfad verschiebt die Datei. Physikalisch wird dabei nur dann wirklich verschoben, wenn der neue Pfad auf einer anderen Partition liegt als der alte. Ansonsten wird einfach nur der Eintrag im Inhaltsverzeichnis der Partition geändert.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Ausgefallenes Problem, Vorgehensweise bedingtes verschieben von Dateien

  Alt 25. Feb 2014, 21:04
Ich werfe jetzt mal Bei Google suchenTransactional NTFS ins Rennen.

MSDN-Library durchsuchenMoveFileTransacted
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#4

AW: Ausgefallenes Problem, Vorgehensweise bedingtes verschieben von Dateien

  Alt 25. Feb 2014, 21:06
Was für ein "Rennen"? Rennt hier jemand? Also ich sitze ... Oder ist das hier ein Wettrennen?
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#5

AW: Ausgefallenes Problem, Vorgehensweise bedingtes verschieben von Dateien

  Alt 25. Feb 2014, 21:27
Ich werfe jetzt mal Bei Google suchenTransactional NTFS ins Rennen.
Alternativ lassen sich in diesem Fall Transaktionen auf Anwendungsebene implementieren, wenn du dir eine weitere Datei als Journal mit den zu löschenden Dateinamen anlegst und verwaltest. Das komplizierteste dabei ist, die Änderungen an den richtigen Stellen zu flushen oder unbuffered I/O (siehe vorherigen Link) zu benutzen.

Wenn du dein Programm nach einem Absturz startest und das Journal ist nicht leer, dann wiederholst du zuallererst alle Löschaufträge, die sich noch im Journal befinden.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

AW: Ausgefallenes Problem, Vorgehensweise bedingtes verschieben von Dateien

  Alt 25. Feb 2014, 21:53
Vielleicht hilft dir das: http://michael-puff.de/Programmierun...nVerlass.shtml
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz