From a3f6697ffb872f553572627c73261cdd1ce55b67 Mon Sep 17 00:00:00 2001 From: Ian C Date: Fri, 21 Jan 2005 01:03:55 +0000 Subject: Initial checkin --- FTPFile.cs | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 FTPFile.cs (limited to 'FTPFile.cs') diff --git a/FTPFile.cs b/FTPFile.cs new file mode 100644 index 0000000..0110598 --- /dev/null +++ b/FTPFile.cs @@ -0,0 +1,130 @@ +// 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; + } +} -- cgit v1.2.3