74 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| /*********************************************************************************************
 | |
|  * Copyright 2005 - Volian Enterprises, Inc. All rights reserved.
 | |
|  * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
 | |
|  * ------------------------------------------------------------------------------
 | |
|  * $Workfile: DirSpace.cs $     $Revision: 1 $
 | |
|  * $Author: Kathy $   $Date: 3/08/05 1:46p $
 | |
|  *
 | |
|  * $History: DirSpace.cs $
 | |
|  * 
 | |
|  * *****************  Version 1  *****************
 | |
|  * User: Kathy        Date: 3/08/05    Time: 1:46p
 | |
|  * Created in $/LibSource/Utils
 | |
|  * Approval
 | |
|  *********************************************************************************************/
 | |
| using System;
 | |
| using System.IO;
 | |
| using System.Runtime.InteropServices;
 | |
| 
 | |
| namespace Utils
 | |
| {
 | |
| 	/// <summary>
 | |
| 	/// Summary description for DirSpace.
 | |
| 	/// </summary>
 | |
| 	public class DirSpace
 | |
| 	{
 | |
| 		static DirSpace()
 | |
| 		{			
 | |
| 		}
 | |
| 
 | |
| 		[DllImport("kernel32.dll", CharSet=CharSet.Auto, SetLastError=true)]
 | |
| 		public static extern bool GetDiskFreeSpaceEx(
 | |
| 			[MarshalAs(UnmanagedType.LPTStr)] string lpDirectoryName,
 | |
| 			ref long lpFreeBytesAvailable,
 | |
| 			ref long lpTotalNumberOfBytes,
 | |
| 			ref long lpTotalNumberOfFreeBytes);
 | |
| 		
 | |
| 		public static long Free()
 | |
| 		{
 | |
| 			string curdir = Environment.CurrentDirectory;
 | |
| 			long freeBytes = new long();
 | |
| 			long totalFreeBytes = new long();
 | |
| 			long totalBytes = new long();
 | |
| 
 | |
| 			bool x = GetDiskFreeSpaceEx(curdir, ref freeBytes, ref totalFreeBytes, ref
 | |
| 				totalBytes);
 | |
| 			return totalFreeBytes;
 | |
| 		}
 | |
| 
 | |
| 		private static long DirSize(DirectoryInfo d) 
 | |
| 		{    
 | |
| 			long Size = 0;    
 | |
| 			// Add file sizes.
 | |
| 			FileInfo[] fis = d.GetFiles();
 | |
| 			foreach (FileInfo fi in fis) 
 | |
| 			{      
 | |
| 				Size += fi.Length;    
 | |
| 			}
 | |
| 			// Add subdirectory sizes.
 | |
| 			DirectoryInfo[] dis = d.GetDirectories();
 | |
| 			foreach (DirectoryInfo di in dis) 
 | |
| 			{
 | |
| 				Size += DirSize(di);   
 | |
| 			}
 | |
| 			return(Size);  
 | |
| 		}
 | |
| 
 | |
| 		public static long Get(string TheDirectory)
 | |
| 		{
 | |
| 			DirectoryInfo d = new DirectoryInfo(TheDirectory);
 | |
| 			return DirSize(d);
 | |
| 		}
 | |
| 	}
 | |
| }
 |