Autor |
Beitrag |
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Mo 11.12.06 21:09
Ich möchte einen Ordner überwachen, und neu erstellte bzw. verschobene Dateien sofort in "Archiv"+Fortlaufende Nummer umbenennen. Kann mir jemand sagen wie man am schlausten einen ordner überwacht?
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Mo 11.12.06 21:41
Hallo!
Entweder programmierst du dir einen Service der das ganze überwacht und meinetwegen eine Hash-Tablelle führt und bei Veränderung das vornimmt, was du gedenkst oder du lädst dir die JEDIs runter, da gibt es meines Wissens so ne Komponente die das für dich erledigt.
LG
Stefan
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
wulfskin
      
Beiträge: 1349
Erhaltene Danke: 1
Win XP
D5 Pers (SSL), D2005 Pro, C, C#
|
Verfasst: Mo 11.12.06 21:48
Hallo,
für Windows 2000 und darüber, verwendest du am besten READDIRECTORYCHANGESW. Für alles darunter gibt es [/msdn]FindFirstChangeNotification[/msdn], da bekommst du aber (wenn ich mich recht entsinne) nicht mit, welche Datei geändert wurde.
Viel Erfolg,
Hape
_________________ Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
|
|
Tilman 
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Di 12.12.06 02:46
Ne, ob eine Datei geändert wurde muss ich gar nicht wissen. Es geht nur um neue Dateien. Es würde schon reichen eine Liste aller Dateien im ordner in einem gewissen intervall abzufragen, allerdings habe ich halt keine ahnung wie mans o was macht. Ist das möglich?
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
Ironwulf
      
Beiträge: 733
Erhaltene Danke: 2
|
Verfasst: Di 12.12.06 03:51
sicher, du lädst die dateinamen in eine stringlist dann lädst du in einem timer nochmal alle datein in eine andere stringlist und schaust ob ne neue dazu gekomm is, wenn ja dann tust du halt das mit der datei was du vorhast und lädst die stringlist für den ordner neu
|
|
Tilman 
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Di 12.12.06 18:29
Ironwulf hat folgendes geschrieben: | sicher, du lädst die dateinamen in eine stringlist dann lädst du in einem timer nochmal alle datein in eine andere stringlist und schaust ob ne neue dazu gekomm is, wenn ja dann tust du halt das mit der datei was du vorhast und lädst die stringlist für den ordner neu |
Soweit, so gut, aber wie bekomme ich die Liste aller Dateien in einem Ordner?
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 12.12.06 18:35
2 simple tips:
a) TJVFileSearch von den JEDI-Komponenten benutzen oder
b) auf diesen Link eine andere Komponente laden:
www.angusj.com/delphi/dirwatch.html
Gruß
rd3
|
|
Tilman 
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Di 12.12.06 18:44
Hmm, würde es gern ohne Komponent machen. Gibt es nicht ne funktion die mir eine Liste zurückgibt?
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
Ironwulf
      
Beiträge: 733
Erhaltene Danke: 2
|
Verfasst: Di 12.12.06 18:45
Tilman hat folgendes geschrieben: |
Soweit, so gut, aber wie bekomme ich die Liste aller Dateien in einem Ordner? |
mal die suche bemühen, hier gibs paar feine proceduren die nitma 20 zeilen klang sinn die das sehr gut können
|
|
Tilman 
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Di 12.12.06 18:49
Ironwulf hat folgendes geschrieben: |
mal die suche bemühen, hier gibs paar feine proceduren die nitma 20 zeilen klang sinn die das sehr gut können |
Mensch vielen Dank, du hilfst mir unheimlich. Noch mehr allerdings wenn du mir noch die Suchwörter sagst bzw. wie die Prozedur heißt, oder hab ich da was übersehen in deinem Post?
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
Ironwulf
      
Beiträge: 733
Erhaltene Danke: 2
|
Verfasst: Di 12.12.06 18:56
;D wenn man nit alles selber macht funktioniert hier gar nix mehr XD
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37:
| Procedure FindFiles (aPath, aFindMask: String; aWithSub: Boolean; aResult: tStrings); Var FindRec: tSearchRec; Begin If aPath[Length (aPath)] <> '\' Then aPath := aPath + '\';
If FindFirst (aPath + aFindMask, faAnyFile, FindRec) = 0 Then Repeat If (FindRec.Name <> '.') and (FindRec.Name <> '..') Then begin If aResult = Unterverzeichnisse Then aResult.Add(FindRec.Name) else aResult.Add(apath + FindRec.Name); end;
Until FindNext (FindRec) <> 0;
If Not aWithSub Then Exit;
If FindFirst (aPath + '*.*', faAnyFile, FindRec) = 0 Then Repeat If (FindRec.Name <> '.') and (FindRec.Name <> '..') Then If Boolean (FindRec.Attr and faDirectory) Then FindFiles(aPath + FindRec.Name, aFindMask, aWithSub, aResult); Until FindNext (FindRec) <> 0;
FindClose (FindRec); end; |
EDIT:
und so ruft man das ganze zum bsp. auf
Delphi-Quelltext 1:
| FindFiles('C:', '*', False, sl); |
Zuletzt bearbeitet von Ironwulf am Di 12.12.06 18:59, insgesamt 1-mal bearbeitet
|
|
azubi_20
      
Beiträge: 593
WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
|
Verfasst: Di 12.12.06 18:57
Vorschlag für Suche hier im Forum : DATEI REKURSIV
|
|
Tilman 
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Di 12.12.06 19:02
Danke an euch beide. Wo ichs finde hätte schon gereicht, aber danke für den Quelltext
// Edit:
Alles klar, habe jetzt die Funktion von FindFirst und FindNext verstanden, werde damit arbeiten.
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|