using System;
using System.Collections.Generic;
using System.Text;
namespace Estsh.Client.Common.FileManager
{
///
/// 文件信息集合類
///
[Serializable]
public class FileInfoAliases
{
///
/// 文件信息類的集合
///
public List Infos;
// private long _totalBytes;
///
/// 構造函數
///
public FileInfoAliases()
{
Infos = new List();
}
public long TotalBytes
{
get
{
return Infos.Sum(a => a.Size);
}
}
}
///
/// 文件信息類
///
[Serializable]
public class FileInfoAlias : IComparable
{
///
/// 文件名稱
///
private string _name;
///
/// 文件大小
///
private long _size;
///
/// 文件最后修改時間
///
private DateTime _lastWriteTime;
///
/// 文件版本(EXE, DLL 文件)
///
private string _version;
///
/// 文件名稱
///
public string Name
{
get { return _name; }
set { _name = value; }
}
///
/// 文件大小
///
public long Size
{
get { return _size; }
set { _size = value; }
}
///
/// 文件最后修改時間
///
public DateTime LastWriteTime
{
get { return _lastWriteTime; }
set { _lastWriteTime = value; }
}
///
/// 文件版本(EXE, DLL 文件)
///
public string Version
{
get { return _version; }
set { _version = value; }
}
#region IComparable 成員
public int CompareTo(FileInfoAlias other)
{
if (null == Version || null == other.Version)
{
return LastWriteTime.CompareTo(other.LastWriteTime);
}
else if (Version.IndexOf('.') < 0 || other.Version.IndexOf('.') < 0)
{
return LastWriteTime.CompareTo(other.LastWriteTime);
}
else
{
//return Version.CompareTo(other.Version);
string[] vers = Version.Split('.');
string[] vers_other = other.Version.Split('.');
int iVer = 0, iVer_other = 0;
for (int index=0; index < vers.Length; index++)
{
iVer = Convert.ToInt32(vers[index]);
iVer_other = Convert.ToInt32(vers_other[index]);
if (iVer != iVer_other)
return iVer.CompareTo(iVer_other);
}
return iVer.CompareTo(iVer_other);
}
}
#endregion
}
}