Autor Beitrag
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Mo 11.12.06 21:48 
Hallo,

für Windows 2000 und darüber, verwendest du am besten Suche im MSDN 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 733
Erhaltene Danke: 2



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: Di 12.12.06 18:29 
user profile iconIronwulf 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



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 733
Erhaltene Danke: 2



BeitragVerfasst: Di 12.12.06 18:45 
user profile iconTilman 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: Di 12.12.06 18:49 
user profile iconIronwulf 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 733
Erhaltene Danke: 2



BeitragVerfasst: Di 12.12.06 18:56 
;D wenn man nit alles selber macht funktioniert hier gar nix mehr XD

ausblenden volle Höhe Delphi-Quelltext
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
  //aPath Gibt an in welchem Verzeichnis nach Datein gesucht werden soll
  //aFindMask Gibt an nach welchen Dateien gesucht werden soll. Z. B. nach allen Textdateien ('*.txt')
  //aResult Gibt die Stringliste an in der die Suchergebnisse eingetragen werden. Das könnte z. B. die Eigenschaft Items einer tListbox sein.

  // Wenn am Ende der Pfadangabe noch kein \ steht, dieses hinzufügen
  If aPath[Length (aPath)] <> '\' Then
    aPath := aPath + '\';

  // Im aktuellen Verzeichnis nach der Datei suchen
  If FindFirst (aPath + aFindMask, faAnyFile, FindRec) = 0 Then
    Repeat
      // ...Ergebnis in die Stringlist einfügen
      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;

    // In Unterverzeichnissen weiter suchen
    If FindFirst (aPath + '*.*', faAnyFile, FindRec) = 0 Then
    Repeat
      If (FindRec.Name <> '.'and (FindRec.Name <> '..'Then
      // Feststellen, ob es sich um ein Verzeichnis handelt
      // Funktion erneut aufrufen, um Verzeichnis zu durchsuchen (Rekursion)
      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
ausblenden Delphi-Quelltext
1:
FindFiles('C:''*', False, sl); //es werden alle datein (Pfad und dateiname) in C: ohne untervrezeichnisse in sl geladen					


Zuletzt bearbeitet von Ironwulf am Di 12.12.06 18:59, insgesamt 1-mal bearbeitet
azubi_20
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 593

WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
BeitragVerfasst: Di 12.12.06 18:57 
Vorschlag für Suche hier im Forum : Suche in: Delphi-Forum DATEI REKURSIV
Tilman Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: 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)