AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Library: Dateien / Laufwerke Delphi Verzeichnisgröße ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Verzeichnisgröße ermitteln

Ein Thema von Matze · begonnen am 3. Nov 2006 · letzter Beitrag vom 7. Jan 2007
Antwort Antwort
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

Verzeichnisgröße ermitteln

  Alt 3. Nov 2006, 10:22
Wie es möglich ist, die Größe eines Verzeichnisses (inkl. Unterordner) zu ermitteln, zeigt Steve in diesem Beitrag. Diese Funktion gibt die Verzeichnis-Größe in Bytes zurück.

Hinweis: Damit diese Funktion funktioniert, muss in der Systemsteuerung unter Verwaltung -> Dienste Scripting gestartet sein.

Delphi-Quellcode:
uses
  ComObj;

function FolderSize(FolderName: string): Int64;
var
  fldr, fso: OleVariant;
begin
  fso := CreateOleObject('Scripting.FileSystemObject');
  fldr := fso.GetFolder(FolderName);

  result := fldr.size;
end;
Luckie empfiehlt, diese Funktion in einen Thread auszulagern, da es bei größeren Verzeichnissen ein wenig dauern kann, bis die Größe ermittelt wurde.

Edit: Nähere Erläuterungen, die den erforderlichen Dienst betreffen, sind den folgenden Beiträgen zu entnehmen.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

Re: Verzeichnisgröße ermitteln

  Alt 3. Nov 2006, 15:23
Einführung!
FileSystemObject (Im späteren Verlauf mit FSO abgekürzt) ist eine von Microsoft geschaffene Plattform für die Programmierung von Webseiten und/oder Scripten. FSO ist quasi als Erweiterung zu dem Microsoft eigenen JScript zu sehen und wird vor allem bei ActivServer Pages, Windows Scripting Host und anderen Applikationen bei denen Scripte benutzt werden, eingesetzt. Mit FSO ist es möglich mit Hilfe von (Web-)Scripten auf Dateien und Verzeichnisse zuzugreifen, diese zu verändern oder anzulegen - ebenfalls kann mit Laufwerken gearbeitet werden. Einen kleinen Nachteil bringt FSO jedoch mit: Allein der Microsoft Internet Explorer unterstützt die Anwendung.

Sicherheit!
Auf Grund der Möglichkeit Daten auf dem Computer zu verändern sind des öfteren Fragen zur Sicherheit aufgetaucht. Seitdem es serverseitige (server-side) Anwendungen gibt sind jedoch die Sicherheitseigenschaften des Microsoft Internet Explorers so, dass sie keinen benutzertseitigen (client-side) Einsatz von FSO unterstützen. Das System sollte somit eigentlich sicher sein - 100% Sicherheit gibt es jedoch nicht. Um ganz sicher zu gehen, dass kein fremdes Skript mit FSO Daten auf Ihrem System löschen oder schreiben kann, sollten Sie die Möglichkeit ausschalten ActiveX-Objekte zu starten und die Sicherheitsstufe des Internet Explorers auf ein Maximum erhöhen.

Ka wo das steht!
Aber ein gewisses Risiko besteht vor allem könnte von verschiedenen Virenscannern
das benutzen von scripts generell unterbunden werden.
Das gilt dann Systemweit!

Zitat:
Das Symantectool blockt mir das FileSystemObject ab und ich kann meine Module nicht laden...
Norton AntiVirus Scriptblockierung

Edit:
Deaktivieren der Komponente FileSystemObject
ASP, Windows Script Host und weitere Skriptinganwendungen verwenden die Komponente FileSystemObject (FSO), um Laufwerke, Ordner und Dateien zu erstellen, zu löschen und zu bearbeiten beziehungsweise um Informationen über diese abzurufen. Sie können die Komponente FileSystemObject deaktivieren, sollten dabei jedoch beachten, dass dadurch auch das Wörterbuchobjekt entfernt wird. Stellen Sie außerdem sicher, dass diese Komponente nicht von anderen Programmen benötigt wird.

Anforderungen

• Anmeldeinformationen: Sie müssen als ein Mitglied der Gruppe Administratoren am Webserver angemeldet sein.
• Tools: Eingabeaufforderung.
• So deaktivieren Sie die Komponente FileSystemObject

1.
Klicken Sie auf Start, auf Ausführen, geben Sie im Feld Öffnen die Zeichenfolge cmd ein, und klicken Sie anschließend auf OK.
2.
Wechseln Sie zum Verzeichnis C:\WINNT\system32.
3.
Geben Sie in der Befehlszeile die Zeichenfolge regsvr32 scrrun.dll /u ein, und drücken Sie die Eingabetaste.
Die folgende Meldung wird angezeigt:
DllUnregisterServer in scrrun.dll erfolgreich durchgeführt.
4.
Klicken Sie auf OK.
5.
Geben Sie an der Eingabeaufforderung den Befehl exit ein, um das Fenster zu schließen.

Zusätzlich also auch noch auf AntiVirus Soft hinweisen
Welche ebenfalls das Scripting unterbindet.
Dann läuft dein Code auch nicht mehr.


gruß
  Mit Zitat antworten Zitat
Benutzerbild von TwoFace
TwoFace

Registriert seit: 21. Jun 2003
Ort: Uffenheim
26 Beiträge
 
#3

Re: Verzeichnisgröße ermitteln

  Alt 7. Jan 2007, 14:15
Servus

Der Dienst is wohl nicht serienmäßig installiert.

Laut M$ Knowledgebase:
Zitat:
You can obtain Scrrun.dll by installing one of the following packages:

Windows Script Host
Windows NT Option Pack
Microsoft Internet Information Server 3.0
Scripting 3.1 upgrade
Visual Studio 6.0
Visual Basic 6.0

[Edit]
Bei meinem Win 2k3 ist scrrun.dll im system32 ordner.
Code:
Regsvr32 SCRRUN.DLL
hat funktioniert. Muß aber neu starten
[/Edit]

Greetz
TwoFace
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Verzeichnisgröße ermitteln

  Alt 7. Jan 2007, 14:43
Zitat von TwoFace:
Der Dienst is wohl nicht serienmäßig installiert.
Ich habe nichts installiert und der Code funktioniert, von daher scheint er bei XP standardmäßg installiert zu sein.

Aber Danke für die Info. "Scrrun.dll" bringt mich schon weiter.
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  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 11:15 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