// Noddybox.Net - Provides simple server interaction classes
// Copyright (C) 2003 Ian Cowburn
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program 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 General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// $Id$
//
namespace Noddybox.Net
{
using System;
///
/// Provides the file info type returned by FTPClient
///
///
/// created by - ianc
/// created on - 10/09/2003 00:28:00
///
public class FTPFile : IComparable
{
// -------------------------------------------------
// - PUBLIC MEMBERS -
// -------------------------------------------------
///
/// File type
///
public enum FileType
{
///
/// Directory
///
Dir,
///
/// File
///
File
};
///
/// Constructor
///
public FTPFile(string name, FileType type, ulong size)
{
m_type=type;
m_name=name;
m_size=size;
}
///
/// The name of the file
///
public string Name
{
get {return m_name;}
}
///
/// The type of the file
///
public FileType Type
{
get {return m_type;}
}
///
/// The size of the file (returns 0 for directories)
///
public ulong Size
{
get
{
if (m_type==FileType.Dir)
{
return 0;
}
else
{
return m_size;
}
}
}
///
/// Compares instance
///
int IComparable.CompareTo(object o)
{
if (o is FTPFile)
{
FTPFile f=(FTPFile)o;
if (m_type==FileType.Dir && f.m_type!=FileType.Dir)
{
return -1;
}
if (m_type==FileType.File && f.m_type!=FileType.File)
{
return 1;
}
return m_name.CompareTo(f.m_name);
}
throw new ArgumentException("object not an FTPFile");
}
// -------------------------------------------------
// - PRIVATE MEMBERS -
// -------------------------------------------------
private FileType m_type;
private ulong m_size;
private string m_name;
}
}