Erkennen, ob ein Windows-Dateisystem die integrierte Dateikomprimierung unterstützt?

327
DaveInCaz

Windows NTFS unterstützt die integrierte Komprimierung auf Ordner- und Dateiebene. Windows FAT nicht.

( Und es gibt andere, die ebenfalls in eine dieser beiden Kategorien fallen.)

Wie können Sie feststellen, ob das Dateisystem über diese Funktion verfügt?

Szenario: Sie müssen einige Aktivitäten mit einem Skript ausführen und möchte bestimmte Dateien so einstellen, dass sie komprimiert werden, wenn dies möglich ist. Wenn dies nicht der Fall ist, kann das Skript nicht versagen. Idealerweise würde ich das gerne zuerst prüfen. Am besten ist es daher, einen einfachen Kommandozeilenansatz zu finden, um die Komprimierungsfunktionen zu überprüfen.


Note / Related: Laut Gibt es eine Möglichkeit, den Windows-Befehl "Compress this drive" über eine Eingabeaufforderung umzuschalten? Sie können das compactDienstprogramm verwenden, um Dateien und Ordner in einem Dateisystem, das dies unterstützt, tatsächlich zu dekomprimieren. Würde dies überhaupt auf einem Windows-PC existieren, der in einem FAT-Dateisystem installiert ist? Wenn ja, was passiert, wenn Sie es ausführen? (Ich habe keinen Beispiel-PC, um es anprobieren zu können.)


Hinweis: Anscheinend gibt es einen programmatischen Weg, dies zu tun, aber wie erwähnt, ist dies nicht wirklich der beste Ansatz für eine Skriptanwendung.

1
Wenn .NET Framework auf allen PCs installiert ist, ist es möglicherweise besser, Zip in Script zu verwenden. https://stackoverflow.com/questions/17546016/wie-can-you-zip-or-unzip-from-the-script-verwendetnur- nur -windows-built-in-capabiliti DrMoishe Pippik vor 5 Jahren 0
"Würde dies sogar auf einem Windows-PC existieren, der in einem FAT-Dateisystem installiert ist?" - Windows unterstützt nicht die Installation in einem FAT-Dateisystem. Warum machen Sie sich Sorgen um diesen Randfall? Ramhound vor 5 Jahren 0
@DrMoishePippik danke; Der Grund für die Untersuchung der Dateisystemkomprimierung besteht darin, Dateien komprimiert zu lassen, die dann von bereits vorhandenen Programmen verwendet werden können. DaveInCaz vor 5 Jahren 1
@ Ramhound ist ein fairer Punkt; Aber wir haben einige Benutzer, die noch ältere PCs verwenden, und ich möchte für diese Fälle nichts kaputt machen. DaveInCaz vor 5 Jahren 0
@ DaveInCaz - Wenn ich eine Weile sage, spreche ich von Windows 98 und früheren Versionen. Der Standard für Windows XP war immer NTFS. Das heißt, wenn Ihre Benutzer eine Windows-Installation haben, die auf einer FAT-Partition installiert ist, bedeutet dies, dass sie vor zwei Jahrzehnten veröffentlicht wurden. Ramhound vor 5 Jahren 0
@Ramhound, es war XP, an das ich gedacht habe ... aber es könnte sein, dass Fälle, in denen FAT installiert werden würde, sehr selten sind. DaveInCaz vor 5 Jahren 0

1 Antwort auf die Frage

3
Alex

Um herauszufinden, ob das Dateisystem über eine Komprimierungsfunktion verfügt, können Sie das in Windows enthaltene Hilfsprogramm verwenden. fsutilDas einzige, was Sie beachten müssen, ist, fsutildass Sie Administratorrechte benötigen. Sie können das Dateisystem direkt erkennen:

fsutil fsinfo volumeinfo c: | find "File System Name" 

Das gibt den Namen des Dateisystems zurück.

Wenn Sie nur die Komprimierungsunterstützung ermitteln müssen, können Sie folgenden Code ausführen:

fsutil fsinfo volumeinfo c: | find "Supports file-based Compression" 

welche die Details angeben, die Sie benötigen.

Durch die Überprüfung der gesamten Ausgabe fsutilkann man weitere Details zum fraglichen Dateisystem erhalten (das würde aussehen):

Volume Name : VolumeLabel Volume Serial Number : 0x01020304 Max Component Length : 255 File System Name : NTFS Supports Case-sensitive filenames Preserves Case of filenames Supports Unicode in filenames Preserves & Enforces ACL's Supports file-based Compression Supports Disk Quotas Supports Sparse files Supports Reparse Points Supports Object Identifiers Supports Encrypted File System Supports Named Streams Supports Transactions Supports Hard Links Supports Extended Attributes Supports Open By FileID Supports USN Journal 

AFAIR fsutilist mindestens seit Windows XP enthalten

... können Sie das kompakte Dienstprogramm verwenden, um Dateien und Ordner in einem Dateisystem, das dies unterstützt, tatsächlich zu dekomprimieren. Würde dies überhaupt auf einem Windows-PC existieren, der in einem FAT-Dateisystem installiert ist? Wenn ja, was passiert, wenn Sie es ausführen?

compactDas Dienstprogramm ist in Windows XP vorhanden, auch wenn es auf FAT installiert ist. Es wird jedoch ein ERRORLEVEL-Code größer als null zurückgegeben, wenn versucht wird, es unter FAT auszuführen. Ich glaube, es wurde beibehalten, da Windows XP die Konvertierung des FAT-Dateisystems in NTFS auf Live-Systemen unterstützt, sodass es in Zukunft verwendet werden kann.

"compact" wird benötigt, um alle NTFS-Volumes zu unterstützen, nicht nur das Startvolume, sondern sogar Wechselmedien. MSalters vor 5 Jahren 0