// 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; } }