Estoy trabajando en un proyecto de instalador donde necesito extraer archivos en el disco. ¿Cómo puedo calcular/encontrar el espacio en disco disponible en el disco duro usando C#?¿Cómo calcular el espacio libre en el disco?
Respuesta
http://msdn.microsoft.com/en-us/library/system.io.driveinfo.totalfreespace.aspx
Copiado del enlace
using System;
using System.IO;
class Test
{
public static void Main()
{
DriveInfo[] allDrives = DriveInfo.GetDrives();
foreach (DriveInfo d in allDrives)
{
Console.WriteLine("Drive {0}", d.Name);
Console.WriteLine(" File type: {0}", d.DriveType);
if (d.IsReady == true)
{
Console.WriteLine(" Volume label: {0}", d.VolumeLabel);
Console.WriteLine(" File system: {0}", d.DriveFormat);
Console.WriteLine(
" Available space to current user:{0, 15} bytes",
d.AvailableFreeSpace);
Console.WriteLine(
" Total available space: {0, 15} bytes",
d.TotalFreeSpace);
Console.WriteLine(
" Total size of drive: {0, 15} bytes ",
d.TotalSize);
}
}
}
}
¿Es necesario que se preocupe? Simplemente escriba los archivos en el disco y maneje los errores según sea necesario; se asume que tendrá que implementar la reversión de todos modos en caso de que algo no relacionado con el espacio ocurra, así que simplemente trate "sin espacio en el disco" como otro error que necesita para revertir para.
Actualización: Si vienes aquí para rechazar esta respuesta correcta, por favor deja un comentario de por qué.
Enfoque bastante descuidado, ¿no crees? Obtener espacio disponible en el disco antes de tiempo es una cuestión bastante trivial, y puede ahorrarle al usuario muchas molestias al instalar un programa. – jrista
Acepto que debe advertir que la escritura será imposible, pero igual necesitará manejar la unidad que se queda sin espacio durante la copia. –
No creo que sea descuidado en absoluto, y es mucho peor cuando un programa estima incorrecto; hay dos respuestas en este hilo y, hasta el momento, ninguna de ellas está completa. Sin mencionar, ¿qué pasa si tienes que instalar algunos archivos en la unidad del sistema y algunos en la unidad que pidieron? ¿Cómo se explica * que * al usuario? –
Utilice la clase System.IO.DriveInfo
. Hay dos opciones disponibles ... uno que toma en cuenta las cuotas de disco:
var drive = new DriveInfo("c");
long freeSpaceInBytes = drive.AvailableFreeSpace;
y uno que simplemente proporciona el espacio libre total:
var drive = new DriveInfo("c");
long freeSpaceInBytes = drive.TotalFreeSpace;
También puede utilizar WMI.
http://msdn.microsoft.com/en-us/library/windows/desktop/aa394173(v=vs.85).aspx
using System;
using System.Management;
class Test
{
static void Main()
{
var moCollection = new ManagementClass("Win32_LogicalDisk").GetInstances();
foreach (var mo in moCollection)
{
if (mo["DeviceID"] != null && mo["DriveType"] != null && mo["Size"] != null && mo["FreeSpace"] != null)
{
// DriveType 3 = "Local Disk"
if (Convert.ToInt32(mo["DriveType"]) == 3)
{
Console.WriteLine("Drive {0}", mo["DeviceID"]);
Console.WriteLine("Size {0} bytes", mo["Size"]);
Console.WriteLine("Free {0} bytes", mo["FreeSpace"]);
}
}
}
}
}
- 1. centos espacio libre en el disco sin actualizar
- 2. Buscar espacio en disco libre en python en OS/X
- 3. ¿Cómo obtengo de manera programática el espacio libre en disco para un directorio en Linux?
- 4. ¿Cómo averiguar el espacio libre en disco para una ruta determinada en un shell de Linux?
- 5. ¿Cómo obtener el espacio en disco en un servidor?
- 6. ¿Cómo se pueden concatenar dos archivos enormes con muy poco espacio libre en el disco?
- 7. Comparta el espacio libre en un WrapPanel
- 8. ¿Cómo calcular el espacio en disco necesario para las bases de datos InnoDB?
- 9. Espacio libre en disco en una unidad de red en Delphi
- 10. Espacio libre en Jenkins eliminar el directorio 'compilaciones'
- 11. Espacio en disco anunciado frente a espacio en disco real
- 12. Cómo verificar el espacio libre disponible en mongodb
- 13. Limpiar Espacio libre en la unidad de disco duro con C#
- 14. La mejor manera de consultar el espacio en el disco en el servidor remoto
- 15. libre el espacio asignado en C con malloc
- 16. cómo encontrar el uso de espacio de disco por usuario?
- 17. MongoDb: Evite el exceso de espacio en disco
- 18. Obtenga espacio libre en la memoria interna
- 19. Espacio libre del dispositivo y espacio de espacio aislado usado
- 20. Cómo eliminar el archivo "dead.letter" que no dejó espacio libre en el directorio raíz
- 21. cómo resolver el problema de jenkins 'El espacio en disco es demasiado bajo'?
- 22. consulta SQL suficiente espacio en disco
- 23. ¿Auto compacto el espacio eliminado en mongodb?
- 24. ¿Cómo se puede evitar programáticamente Windows desde el disco duro?
- 25. iPhone - Espacio libre en el dispositivo informado incorrectamente (+ - 200 Mb de diferencia)
- 26. Obtenga espacio de disco disponible en ruby
- 27. Calcular el consumo de espacio total de archivos específicos en el terminal de Unix
- 28. ¿Cómo puedo encontrar el espacio libre disponible en volúmenes montados usando Perl?
- 29. ¿Cómo obtener espacio de disco total disponible en sistemas Posix?
- 30. ¿Cómo recuperas espacio en el disco después de agregar una alternativa en git?
No se puede calcular el espacio en disco usando C#. Tendrás que usar .NET. –