Gets information about the files in a directory and puts it in an array of strings.

image_pdfimage_print

#region License and Copyright
/* ————————————————————————-
* Dotnet Commons IO
*
*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
* for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this library; if not, write to the
*
* Free Software Foundation, Inc.,
* 59 Temple Place,
* Suite 330,
* Boston,
* MA 02111-1307
* USA
*
* ————————————————————————-
*/
#endregion

using System;
using System.Collections;
using System.Globalization;
using System.IO;

namespace Dotnet.Commons.IO
{

///
///

/// This class provides basic facilities for manipulating files and file paths.
///
///

File-related methods

/// There are methods to
/// /// copy a file to another file,
/// compare the content of 2 files,
/// delete files using the wildcard character,
/// etc
///
///

///
public sealed class FileUtils
{
/// —————————————————————
///

/// Gets information about the files in a directory and puts it in an array of strings.
/// The file attributes are separated by commas.
///

/// ///
/// An string array containing comma separated values of
/// file information in a given directory

///
/// As the comma character is a valid character in a file name,
/// the values are encapsulated within a double
/// quote, eg. “Dotnet.Commons.IO.dll”,”28672″,”26/01/2006 2:25:26 AM”,”27/07/2006 10:18:04 PM”,”27/07/2006 10:16″,”Archive”
///

/// —————————————————————
public static string[] GetDirectoryFileInfo(string directory)
{
return GetDirectoryFileInfo(directory, ',');
}
private static string encapsulateInQuote(string value, bool toEncapsulate)
{
if (toEncapsulate)
return string.Format(“”{0}””, value);
else
return value;
}
/// —————————————————————
///

/// Get an array of files info from a directory.
///

/// ///
/// —————————————————————
public static FileInfo[] GetFilesInDirectory(string directory)
{
if ((directory == null) || (directory.Length < 1)) throw new System.ArgumentException("Directory supplied is either null or empty"); DirectoryInfo dirInfo = new DirectoryInfo(directory); if (!dirInfo.Exists) throw new System.ArgumentException("Directory '" + directory + "' does not exist."); return dirInfo.GetFiles(); } /// --------------------------------------------------------------- ///

/// Gets information about the files in a directory and puts it in an array of strings.
///

/// name of directory to search /// delimeter character to separator file attributes ///
/// An string array containing comma separated values of
/// file information in a given directory in the format:
///

        ///     filename,Size,CreationTime,LastAccessTime,LastWriteTime,Attributes 
        /// 

/// assuming that the delimeter chosen is the comma ',' character.
///
/// —————————————————————
public static string[] GetDirectoryFileInfo(string directory, char delimeter)
{
ArrayList al = new ArrayList();
al.Add(String.Format(“Name{0}Size{0}CreationTime{0}LastAccessTime{0}LastWriteTime{0}Attributes”, delimeter));

bool toEncapsulateInQuote = delimeter == ',';

FileInfo[] files = GetFilesInDirectory(directory);
for (int i = 0; i < files.Length; i++) { System.Text.StringBuilder buffy = new System.Text.StringBuilder(); buffy.Append(encapsulateInQuote(files[i].Name, toEncapsulateInQuote)); buffy.Append(delimeter); buffy.Append(encapsulateInQuote(files[i].Length.ToString(), toEncapsulateInQuote)); buffy.Append(delimeter); buffy.Append(encapsulateInQuote(files[i].CreationTime.ToString(), toEncapsulateInQuote)); buffy.Append(delimeter); buffy.Append(encapsulateInQuote(files[i].LastAccessTime.ToString(), toEncapsulateInQuote)); buffy.Append(delimeter); buffy.Append(encapsulateInQuote(files[i].LastWriteTime.ToString(), toEncapsulateInQuote)); buffy.Append(delimeter); buffy.Append(encapsulateInQuote(files[i].Attributes.ToString(), toEncapsulateInQuote)); al.Add(buffy.ToString()); } string[] dInfo = new string[al.Count]; al.CopyTo(dInfo); return dInfo; } } } [/csharp]

This entry was posted in File Stream. Bookmark the permalink.