diff options
author | Ian C <ianc@noddybox.co.uk> | 2005-01-21 01:03:55 +0000 |
---|---|---|
committer | Ian C <ianc@noddybox.co.uk> | 2005-01-21 01:03:55 +0000 |
commit | a3f6697ffb872f553572627c73261cdd1ce55b67 (patch) | |
tree | 613f2a81953097c6a70e91b0ebbc09108156b91b /FTPFile.cs | |
parent | fe145c07172128b03f74d377761f33c2af4de960 (diff) |
Initial checkin
Diffstat (limited to 'FTPFile.cs')
-rw-r--r-- | FTPFile.cs | 130 |
1 files changed, 130 insertions, 0 deletions
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; + + /// <summary> + /// Provides the file info type returned by FTPClient + /// </summary> + /// <remarks> + /// created by - ianc + /// created on - 10/09/2003 00:28:00 + /// </remarks> + public class FTPFile : IComparable + { + // ------------------------------------------------- + // - PUBLIC MEMBERS - + // ------------------------------------------------- + + /// <summary> + /// File type + /// </summary> + public enum FileType + { + /// <summary> + /// Directory + /// </summary> + Dir, + + /// <summary> + /// File + /// </summary> + File + }; + + /// <summary> + /// Constructor + /// </summary> + public FTPFile(string name, FileType type, ulong size) + { + m_type=type; + m_name=name; + m_size=size; + } + + /// <summary> + /// The name of the file + /// </summary> + public string Name + { + get {return m_name;} + } + + /// <summary> + /// The type of the file + /// </summary> + public FileType Type + { + get {return m_type;} + } + + /// <summary> + /// The size of the file (returns 0 for directories) + /// </summary> + public ulong Size + { + get + { + if (m_type==FileType.Dir) + { + return 0; + } + else + { + return m_size; + } + } + } + + /// <summary> + /// Compares instance + /// </summary> + 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; + } +} |