[Roam-commit] SF.net SVN: roam: [71] Trunk/Source
Status: Alpha
Brought to you by:
jonfroehlich
|
From: <jon...@us...> - 2007-04-08 03:04:12
|
Revision: 71
http://roam.svn.sourceforge.net/roam/?rev=71&view=rev
Author: jonfroehlich
Date: 2007-04-07 20:04:10 -0700 (Sat, 07 Apr 2007)
Log Message:
-----------
added DirectoryUtils to Roam.Common, which contains a collection of directory-related static methods. For example, the size of the directory in bytes (including sub-directories is settable) and the number of files in a directory (with or without subdirectories)
Modified Paths:
--------------
Trunk/Source/Roam.Common/Roam.Common.csproj
Trunk/Source/Roam.Test/Roam.Test.csproj
Trunk/Source/Roam.suo
Added Paths:
-----------
Trunk/Source/Roam.Common/Utils/DirectoryUtils.cs
Modified: Trunk/Source/Roam.Common/Roam.Common.csproj
===================================================================
--- Trunk/Source/Roam.Common/Roam.Common.csproj 2007-04-02 05:26:29 UTC (rev 70)
+++ Trunk/Source/Roam.Common/Roam.Common.csproj 2007-04-08 03:04:10 UTC (rev 71)
@@ -74,6 +74,7 @@
<Compile Include="Collections\WalkUpTreeBranchEnumerator.cs" />
<Compile Include="Collections\WalkUpTreeBranch.cs" />
<Compile Include="Utils\DebugWriteAppender.cs" />
+ <Compile Include="Utils\DirectoryUtils.cs" />
<Compile Include="Utils\EnumUtils.cs" />
<Compile Include="Utils\ErrorUtils.cs" />
<Compile Include="Utils\ImagingUtils.cs" />
Added: Trunk/Source/Roam.Common/Utils/DirectoryUtils.cs
===================================================================
--- Trunk/Source/Roam.Common/Utils/DirectoryUtils.cs (rev 0)
+++ Trunk/Source/Roam.Common/Utils/DirectoryUtils.cs 2007-04-08 03:04:10 UTC (rev 71)
@@ -0,0 +1,103 @@
+#region Copyright & License
+//
+// Copyright (c) 2005 - 2007 The Regents of the University of Washington, Intel
+// Research Seattle, and the Roam project. All rights reserved.
+//
+// This software is open-source under the BSD license. You may obtain a copy
+// of this license at
+//
+// http://roam.sourceforge.net/license.txt
+//
+// Alternatively, please see "license.txt" which should be included in
+// this source code distribution.
+//
+#endregion Copyright & License
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.IO;
+
+namespace Roam.Common.Utils
+{
+ /// <summary>
+ ///
+ /// </summary>
+ /// <remarks>
+ ///
+ /// </remarks>
+ /// <author>Jon Froehlich</author>
+ public static class DirectoryUtils
+ {
+ /// <summary>
+ /// Returns the size of this directory and all sub-directories in bytes.
+ /// </summary>
+ /// <param name="path"></param>
+ /// <returns></returns>
+ public static long GetSize(string directoryPath)
+ {
+ return GetSize(directoryPath, true);
+ }
+
+ public static long GetSize(string directoryPath, bool recursive)
+ {
+ long size = 0;
+
+ if (recursive)
+ {
+ string[] directories = Directory.GetDirectories(directoryPath);
+ foreach (string directory in directories)
+ {
+ size += GetSize(directory, recursive);
+ }
+ }
+
+ string[] files = Directory.GetFiles(directoryPath);
+ foreach (string file in files)
+ {
+ FileInfo fi = new FileInfo(file);
+ size += fi.Length;
+ }
+
+ return size;
+ }
+
+ public static List<FileInfo> GetFileInfos(string directoryPath, bool recursive)
+ {
+ List<FileInfo> listFileInfos = new List<FileInfo>();
+
+ if (recursive)
+ {
+ string[] directories = Directory.GetDirectories(directoryPath);
+ foreach (string directory in directories)
+ {
+ listFileInfos.AddRange(GetFileInfos(directoryPath, recursive));
+ }
+ }
+
+ string[] files = Directory.GetFiles(directoryPath);
+ foreach (string file in files)
+ {
+ listFileInfos.Add(new FileInfo(file));
+ }
+
+ return listFileInfos;
+ }
+
+ public static int GetNumFiles(string directoryPath, bool recursive)
+ {
+ int numFiles = 0;
+ if (recursive)
+ {
+ string[] directories = Directory.GetDirectories(directoryPath);
+ foreach (string directory in directories)
+ {
+ numFiles += GetNumFiles(directoryPath, recursive);
+ }
+ }
+
+ string[] files = Directory.GetFiles(directoryPath);
+ numFiles += files.Length;
+ return numFiles;
+ }
+ }
+}
Modified: Trunk/Source/Roam.Test/Roam.Test.csproj
===================================================================
--- Trunk/Source/Roam.Test/Roam.Test.csproj 2007-04-02 05:26:29 UTC (rev 70)
+++ Trunk/Source/Roam.Test/Roam.Test.csproj 2007-04-08 03:04:10 UTC (rev 71)
@@ -599,7 +599,7 @@
<DependentUpon>SystemColorTest.cs</DependentUpon>
</Compile>
<Compile Include="UI\Controls\TabControlTest.cs">
- <SubType>Form</SubType>
+ <SubType>Component</SubType>
</Compile>
<Compile Include="UI\Controls\TabControlTest.Designer.cs">
<DependentUpon>TabControlTest.cs</DependentUpon>
Modified: Trunk/Source/Roam.suo
===================================================================
(Binary files differ)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|