AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ist eine Datei komprimiert?

Ein Thema von alcaeus · begonnen am 13. Nov 2006 · letzter Beitrag vom 17. Nov 2006
Antwort Antwort
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#1

Ist eine Datei komprimiert?

  Alt 13. Nov 2006, 13:31
Hallo,

wie kann ich rausfinden, ob eine bestimmte Datei komprimiert (mit der Dateikomprimierung unter XP) auf der Festplatte liegt oder nicht? Ich braeuchte das um rauszufinden ob ich die Anzahl belegter Cluster anhand der echten Dateigroesse oder anhand der komprimierten Dateigroesse berechnen muss; dies kann ja fuer jede Datei anders sein.

Danke schonmal,
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Ist eine Datei komprimiert?

  Alt 13. Nov 2006, 13:37
Guck mal hier: MSDN-Library durchsuchenDeviceIOControl und dem Flag: FSCTL_GET_COMPRESSION
Zitat:
Compression State
Each file and directory on a volume that supports compression for individual files and directories has a compression state.


Whereas the compression attribute of a file or directory indicates simply whether the file or directory is compressed or not compressed, the compression state also specifies the format of any compressed data.

Use the FSCTL_GET_COMPRESSION control code to determine the compression state of a file or directory.

Compression state is encoded as a 16-bit value. A compression state value of COMPRESSION_FORMAT_NONE indicates that a file is not compressed. A value of COMPRESSION_FORMAT_DEFAULT indicates that a file is compressed, using the default compression format. Any other value indicates that a file is compressed, using the compression format specified by the compression state value.

Use the FSCTL_SET_COMPRESSION control code to set the compression state of a file or directory. This operation also sets the compression attribute of the file or directory.

Setting the compression state of a file to a nonzero value compresses the file, using the compression format encoded by the compression state value. Setting a file's compression state to zero decompresses the file. These are synchronous operations. The file is compressed or decompressed immediately when you set its compression state.

Setting a directory's compression state does not cause any immediate compression or decompression. Instead, setting a directory's compression state sets a default compression state that will be given to all newly created files and subdirectories.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#3

Re: Ist eine Datei komprimiert?

  Alt 13. Nov 2006, 13:40
Danke!

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#4

Re: Ist eine Datei komprimiert?

  Alt 17. Nov 2006, 12:17
Zum Auslesen/Prüfen geht's hiermit wohl einfacher:
MSDN-Library durchsuchenGetFileAttributes + FILE_ATTRIBUTE_COMPRESSED
Nur zum Setzen/Ändern muß MSDN-Library durchsuchenFSCTL_SET_COMPRESSION verwendet werden.


Und zur Größe ... MSDN-Library durchsuchenGetCompressedFileSize und MSDN-Library durchsuchenGetFileSize ^^
(GetCompressedFileSize sollte auch beu unkomprimierten Dateien funktionieren)



Ach ja, wenn schon, dann sollte an auf ungleich COMPRESSION_FORMAT_NONE prüfen ... derzeit gibt's zwar nur einen Kompressionsmudus, aber das kann sich ja noch ändern.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 10:33 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