2012-04-12 9 views
2

Ich wollte wissen, wie kann ich den freien Speicherplatz in einem Laufwerk in Windows mit C++ finden. Ich habe einen Pfad des Verzeichnisses als Eingabe und ich wollte wissen, ob dieses Laufwerk oder dieses Verzeichnis genügend Speicherplatz zum Speichern meiner Daten hat. Die Haupteinschränkung ist, dass ich nur C++, nicht das VC++ oder irgendeine andere Windows-Programmierung verwenden soll, da diese Anwendung im Batch-Modus mit anderen Anwendungen interagieren muss.Informationen zur freien Speicherplatzgröße

+5

Zunächst kann Visual Studio (VC++) normale, nicht verwaltete C++ - Anwendungen nur für die Konsole erstellen, sogar die Express-Version. Zweitens, http://mattgememm.com/2008/12/08/what-have-you-tried/ –

+2

GetDiskFreeSpaceEx http://msdn.microsoft.com/en-us/library/windows/desktop/aa364937%28v= vs.85% 29.aspx – jrok

+0

Ihre Frage macht nicht viel Sinn warum können Sie nicht VC++ verwenden, sicherlich ist die einfachste Sache, eine WinAPI-Methode aufzurufen, um den Speicherplatz zu erhalten http://msdn.microsoft.com/en- us/library/windows/desktop/aa364935% 28v = vs.85% 29.aspx, sonst müssen Sie eine andere Bibliothek finden, um diese Information vom Betriebssystem abzufragen, die diesen winapi höchstwahrscheinlich aufruft? – EdChum

Antwort

3

Wenn Sie freien Speicherplatz auf Windows wissen müssen Sie dies lesen können:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa364937(v=vs.85).aspx

Auf POSIX-Systemen, können Sie dies versuchen: http://pubs.opengroup.org/onlinepubs/009604499/basedefs/sys/statvfs.h.html

Ich glaube, dass der freie Speicherplatz zur Verfügung, ohne Die Verwendung des Dateisystems ist nicht möglich, da Sie feststellen müssen, wann eine Bytefolge eine Datei ist ... (Sie müssen die Gesamtzahl der Blöcke auf Ihrer Festplatte identifizieren, die für das System reserviert sind, eine Markierung für die Blöcke, die verwendet werden, und eine Flagge für diejenigen, die frei sind und wahrscheinlich viel mehr st uff ...)

Ich kann falsch sein, aber das ist meine Vermutung ...

Ich hoffe, Sie verstehen ...

=)

+3

Während dies theoretisch die Frage beantworten könnte, [wäre es vorzuziehen] (http://meta.stackexchange.com/q/8259), die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz zur Verfügung zu stellen. – senderle

0

Eine tragbare Lösung ist Boost zu verwenden .Filesystem space, das eine space_info Struktur mit den relevanten Informationen zurückgibt.

Verwandte Themen