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
Antwort
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 ...
=)
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
Eine tragbare Lösung ist Boost zu verwenden .Filesystem space, das eine space_info
Struktur mit den relevanten Informationen zurückgibt.
- 1. Konfiguration max alte Speicherplatzgröße in Nodejs
- 2. Verwendung eines freien "char const *" zur statischen Initialisierungszeit
- 3. Zuverlässige Informationen zur x86-String-Befehlsleistung?
- 4. TeamSpeak 3 erhalten Informationen zur Website
- 5. Informationen zur GetTempPath-Funktion in Win32-API
- 6. Laravel - Hinzufügen von Informationen zur Beziehung Ausgabe
- 7. Wo finde ich umfassende Informationen zur Bildbearbeitungsbibliothek?
- 8. Verwenden eines Treeview zur Anzeige von Informationen
- 9. Absturz beim freien Zeiger
- 10. Drucken der freien Monade
- 11. Wie können Produktionsdaten im Freien wiederhergestellt werden?
- 12. opencv Nähte mit freien dll
- 13. Wie berechnet man freien Speicherplatz?
- 14. Suchen Sie einen freien Port
- 15. Ort Informationen Länge in der Terminal-Antwort von lokalen Informationen zur Verfügung stellen
- 16. Wie finde ich Informationen zur parallelen Architektur meiner CPU?
- 17. Wo finde ich Informationen zur Entwicklung von Opera Unite? [schließen]
- 18. Wo finde ich Informationen zur Assemblerspezifikation für das Motorola 68000?
- 19. RoR: Informationen von 3 Modellen zur gleichen Zeit speichern
- 20. Haben Sie Informationen zur Unterstützung von SonarQube LTS?
- 21. Softlayer API benötigten Informationen zur Verwendung von SoftLayer_Ticket mit subjectId
- 22. Wo finde ich Informationen zur Struktur des Delphi VMT?
- 23. Wie sammle ich statistische Informationen zur Anwendungsnutzung in ASP.NET MVC?
- 24. Informationen zur Eingabe hinzufügen - Alternative für TouchDevice in UWP?
- 25. So fügen Sie Informationen zur getJSON-Antwort hinzu
- 26. Wie können wir Informationen zur Datenträgerleistung in C#
- 27. Wie SQL zur Ausgabe neuesten Informationen mit mehreren Spalten verwenden
- 28. Wo finde ich Ressourcen und Informationen zur ActiveRecord-Optimierung?
- 29. So erhalten Sie Informationen zur Android-Akku-Nutzung nach Anwendung
- 30. Java-Flag zum Aktivieren der erweiterten Debugging-Informationen zur Serialisierung
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/ –
GetDiskFreeSpaceEx http://msdn.microsoft.com/en-us/library/windows/desktop/aa364937%28v= vs.85% 29.aspx – jrok
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