2011-01-04 57 views

Respuesta

-6

Si alguien es intrested utilicé el siguiente

var files = Directory.GetFiles(directory, "*",SearchOption.AllDirectories); 
sizeInBytes = (from file in files let fileInfo = new FileInfo(file) select fileInfo.Length).Sum(); 
+1

Este fragmento asume que los directorios dentro del directorio especificado representan sitios web reales, lo que no es necesariamente cierto. Supongo que en realidad estás intentando listar carpetas virtuales dentro de un sitio. En lugar de utilizar las clases dentro de System.DirectoryServices, será más preciso. – cstruter

+0

Esto es simplemente incorrecto ... – Milney

17

Para IIS 7 puede usar Micro soft.Web.Administration.dll (C: \ Windows \ System32 \ inetsrv) y el siguiente código

 var iisManager = new ServerManager(); 
     SiteCollection sites = iisManager.Sites; 
+4

Esto funciona genial, gracias! Sin embargo, cabe señalar que la aplicación en ejecución (VS o la aplicación en sí) necesitará permisos elevados para ejecutar esto (al menos en mi configuración de Windows 7). – nateirvin

+0

Esto fue lo mejor que encontré en Internet en mucho tiempo (¡relacionado con el trabajo, por supuesto!) – jackncoke

Cuestiones relacionadas