2011-01-04 45 views

Trả lời

-6

Nếu ai là Intrested tôi đã sử dụng sau đây

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

Đoạn mã này giả định rằng các thư mục trong thư mục được chỉ định thể hiện các trang web thực sự, điều này không nhất thiết phải đúng. Đoán của tôi là bạn đang thực sự cố gắng liệt kê các thư mục ảo trong một trang web? Thay vì sử dụng các lớp trong System.DirectoryServices, nó sẽ chính xác hơn. – cstruter

+0

Đây chỉ là sai ... – Milney

17

Đối với IIS 7 bạn có thể sử dụng Micro soft.Web.Administration.dll (C: \ Windows \ System32 \ inetsrv) và mã sau đây

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

Điều này hoạt động tuyệt vời, cảm ơn! Tuy nhiên, cần lưu ý rằng ứng dụng thực thi (VS hoặc bản thân ứng dụng) sẽ cần các quyền nâng cao để chạy điều này (ít nhất là trên thiết lập Windows 7 của tôi). – nateirvin

+0

Đây là điều tốt nhất tôi tìm thấy trên internet trong một thời gian dài (công việc liên quan đến khóa học!) – jackncoke

Các vấn đề liên quan