directorycollection.cs

来自「ftp客服端源代码」· CS 代码 · 共 111 行

CS
111
字号
using System;
using System.Collections;

namespace SourceFtp.FileSystem
{
	/// <summary>
	/// Summary description for DirectoryCollection.
	/// </summary>
	public class DirectoryCollection : ICollection
	{
		private ArrayList m_List = new ArrayList();

		private ILibrary m_Library;
		private Directory m_Parent;
		public DirectoryCollection(ILibrary p_Library, Directory p_Parent)
		{
			m_Parent = p_Parent;
			m_Library = p_Library;
		}

		public int ListAdd(Directory p_Dir)
		{
			return m_List.Add(p_Dir);
		}

		public void ListRemove(Directory p_Dir)
		{
			m_List.Remove(p_Dir);
		}

		public Directory Add(string p_Name)
		{
			return m_Library.AddSubDirectory(m_Parent,p_Name);
		}

		/// <summary>
		/// Remove a sub directory
		/// </summary>
		/// <param name="p_Directory"></param>
		public void Remove(Directory p_Directory)
		{
			if (Contains(p_Directory)== false)
				throw new ApplicationException("Directory not valid");
			m_Library.RemoveSubDirectory(p_Directory);
		}

		public Directory this[int p_Index]
		{
			get{return (Directory)m_List[p_Index];}
		}

		public bool Contains(Directory p_Dir)
		{
			return m_List.Contains(p_Dir);
		}

		public bool Contains(string p_DirectoryName)
		{
			foreach (Directory d in this)
			{
				if (d.Name.ToUpper() == p_DirectoryName.ToUpper())
					return true;
			}
			return false;
		}

	
		#region ICollection Members

		public bool IsSynchronized
		{
			get
			{
				return m_List.IsSynchronized;
			}
		}

		public int Count
		{
			get
			{
				return m_List.Count;
			}
		}

		public void CopyTo(Array array, int index)
		{
			m_List.CopyTo(array,index);
		}

		public object SyncRoot
		{
			get
			{
				return m_List.SyncRoot;
			}
		}

		#endregion

		#region IEnumerable Members

		public IEnumerator GetEnumerator()
		{
			return m_List.GetEnumerator();
		}

		#endregion
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?