Re: Filesystem in Datei speichern



Stefan Baumgart schrieb:
Hallo NG,

ich habe folgendes Problem:
Ich möchte alle Ordner und Dateien mit den Eigenschaften für Name, Attribute, Größe, Änderungsdatum in einer Datei speichern, um später diese Datei wieder zu laden und mit dem aktuellen Stand der Ordner und Dateien vergleichen zu können. Auf diese Art möchte ich z.B. gelöschte oder hinzugefügte Dateien ausgeben können.

Ich habe bereits einige Ansätze mit ADODB, dem FileSystemObject und XML probiert, bin aber noch nicht auf eine brauchbare Lösung gekommen.

- Mit ADODB kann man nur(?) Internetpfade ansprechen
das glaube ich nicht; vielleicht verstehe ich es aber auch miss
- FSO bietet keine Möglichkeit der Speicherung in TXT oder XML-Dateien
> (um diese anschließend wieder zu laden)
es ist aber auch nicht schwierig, Daten vom Speicher in eine .txt
Datei zu schreiben
- gleiches gilt für das Dictionary-Objekt
s.o.

Hat jemand eine Idee, wie ich das Problem angehen müsste?

Vielen Dank
Stefan Baumgart

Ich wuerde von hinten anfangen: Wenn man die beiden Verzeichnisbaeume (oder
denselben Baum zu zwei Zeitpunkten) in zwei DB-Tabellen tut - hier ein ganz
einfaches Beispiel:

SELECT dtLastA, iSize, sId FROM [frs.csv]
dtLastA iSize sId
----------------------------------------------------------------------
10.02.2005 16:46:59 2000 \basetree.html
10.02.2005 16:51:37 1297 \testtm.vbs
10.02.2005 16:32:02 4597 \treemaker-org.vbs
10.02.2005 16:46:56 4717 \treemaker.vbs
20.06.2004 13:41:26 6527 \subdir\AppLib.vbs
20.06.2004 15:29:46 5433 \subdir\BootLib.vbs
11.02.2005 14:07:21 7512 \subdir\subsubdir\aircraft.cfg
26.04.2007 21:55:15 11873 \subdir\subsubdir\check.sh
11.02.2005 14:07:21 7512 \subdir\subsubdir\papa.pl

SELECT dtLastA, iSize, sId FROM [sec.csv]
dtLastA iSize sId
----------------------------------------------------------------------
05.02.2003 08:32:52 288 \blddsn.udl
10.02.2005 16:51:37 1297 \testtm.vbs
10.02.2005 16:32:02 4597 \treemaker-org.vbs
03.06.2008 00:51:42 4739 \treemaker.vbs
20.06.2004 13:41:26 6527 \subdir\AppLib.vbs
20.06.2004 15:29:46 5433 \subdir\BootLib.vbs
03.06.2008 00:57:39 7512 \subdir\subsubdir\aircraft.cfg
26.04.2007 21:55:15 11873 \subdir\subsubdir\check.sh
11.02.2005 14:07:21 7512 \subdir\subsubdir\papa.pl

kann man mit SQL-Abfragen sehr flexibel und bequem fehlende Dateien
im zweiten:

SELECT F.dtLastA, F.iSize, F.sId FROM [frs.csv] AS F
LEFT JOIN [sec.csv] AS S ON F.sId = S.sId WHERE S.sId IS NULL
dtLastA iSize sId
----------------------------------------------------------------------
10.02.2005 16:46:59 2000 \basetree.html

bzw. im ersten:

SELECT S.dtLastA, S.iSize, S.sId FROM [sec.csv] AS S
LEFT JOIN [frs.csv] AS F ON F.sId = S.sId WHERE F.sId IS NULL
dtLastA iSize sId
----------------------------------------------------------------------
05.02.2003 08:32:52 288 \blddsn.udl

oder Unterschiede:

SELECT F.iSize, S.iSize, F.sId FROM [sec.csv] AS S
INNER JOIN [frs.csv] AS F ON F.sId = S.sId WHERE F.iSize <> S.iSize
F.iSize S.iSize sId
----------------------------------------------------------------------
4717 4739 \treemaker.vbs

SELECT F.dtLastA, S.dtLastA, F.iSize, F.sId FROM [sec.csv] AS S
INNER JOIN [frs.csv] AS F ON F.sId = S.sId WHERE F.dtLastA <> S.dtLastA
F.dtLastA S.dtLastA iSize sId
----------------------------------------------------------------------
10.02.2005 16:46:56 03.06.2008 00:51:42 4717 \treemaker.vbs
11.02.2005 14:07:21 03.06.2008 00:57:39 7512 \subdir\subsubdir\aircraft.cfg

herausfinden. Mit dem hier benutzten ADO/Text Treiber (der aber immerhin fast
ueberall zur Verfuegung stehen sollte) wird man Performanzprobleme bekaempfen
muessen, aber andere DBMS (SQLite, MySQL, Access, MS SQL (Express)) sind nicht
viel schwieriger zu handhaben.

Vielleicht hat man ja einen Access-faehigen Praktikanten, der ein GUI vor die
Tabellen setzt.

Zugegeben, es ist mehr Lernaufwand und Planungs- und Implementierungsarbeit als
ich mir 'nur so zum Spass' auflasten wuerde, und ich moechte auch nicht ueber
einen 'Abgabetermin' spekulieren - aber mir erscheint dieser Weg sehr viel
erfolgversprechender als der Versuch mit Dictionaries und reinem VBScript Custom
Code den - per definitionem: unbeschraenkten - Wuenschen der User hinterherzuarbeiten.
.



Relevant Pages

  • Re: Sortierung in View nach Umstellung auf SQL-Server 2005
    ... Tabelle mit Attributen SId und Sortname ... SELECT SId, SortName ... SELECT * FROM dbo.view_SortOrder ...
    (microsoft.public.de.access.clientserver)
  • Re: Probleme beim Konvertieren von nvarchar Spalten in Int
    ... > ich bin leider ein absoluter Anfänger in SQL und hoffe das es trotzdem ... > dank dem nvarchar Datentyp der Spalte nicht geht da nun miene ausgabe wie ... > Select Wert ... > From tmp ...
    (microsoft.public.de.sqlserver)
  • Re: Erhoehte I/O-Last durch Query
    ... SELECT Feld FROM Tabelle JOIN (SELECT Feld FROM Tabelle WHERE ... SELECT Firmen_ID FROM FirmenKeys WHERE Suchwort LIKE 'test%' ...
    (de.comp.datenbanken.mysql)
  • Re: 3 SQL Abfragen in 1
    ... Die einzelnen Felder müssen nun mit dem Inhalt der SQL Abfrage gefüllt ... SELECT FPWRNr, maxas Erlaubt, maxas Verboten FROM ... (SELECT FPWRNr,'' As Erlaubt, FPWRLand as Verboten FROM tbFWPReise WHERE ...
    (microsoft.public.de.sqlserver)
  • Newbie: Anlegen einer gespeicherten Prozedur dauert ewig
    ... Anzahl, getdateZeit FROM ADR ... INSERT INTO ANSPR SELECT * FROM LFAM...ANSPR ... Anzahl, getdateZeit FROM ANSPR ...
    (microsoft.public.de.sqlserver)