// This file is part of the Noddybox.WindowsPhone C# suite.
//
// Noddybox.Emulation 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 3 of the License, or
// (at your option) any later version.
//
// Noddybox.Emulation 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 Noddybox.Emulation. If not, see .
//
// Copyright (c) 2012 Ian Cowburn
//
using System;
namespace Noddybox.WindowsPhone.Net
{
using System;
///
/// Provides the file info type returned by FTPClient
///
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;
}
}