/// <summary> /// Singleton pattern implementation /// </summary> /// <returns></returns> internal static FtpListenerManager GetFtpManager() { if (m_ManagerSingleton == null) { m_ManagerSingleton = new FtpListenerManager(); } return(m_ManagerSingleton); }
/// <summary> /// Singleton pattern implementation /// </summary> /// <returns></returns> internal static FtpListenerManager GetFtpManager() { if (m_ManagerSingleton == null) { m_ManagerSingleton = new FtpListenerManager(); } return m_ManagerSingleton; }
private bool DirectoryExists(String path) { foreach (FtpListener item in FtpListenerManager.GetFtpManager().Listeners) { foreach (String prefix in item.Prefixes) { if (prefix.Length >= path.Length && path.Equals(prefix.Substring(0, path.Length))) { return(true); } } } return(false); }
private static void WriteDirInfo(string path, FtpResponseStream stream) { ArrayList sent = new ArrayList(); foreach (FtpListener item in FtpListenerManager.GetFtpManager().Listeners) { foreach (String prefix in item.Prefixes) { if (prefix.Length >= path.Length && path.Equals(prefix.Substring(0, path.Length))) { //this is "our" directory String rest = prefix.Substring(path.Length); int idx = rest.IndexOf("/"); if (idx >= 0) { rest = rest.Substring(0, idx); } if (rest.Length < 1) { continue; } bool alreadySent = false; foreach (var itemSent in sent) { if (rest.Equals(itemSent)) { alreadySent = true; break; } } if (alreadySent) { continue; } sent.Add(rest); DirectoryInfo dir = new DirectoryInfo(rest); stream.Write(new DirectoryInfo(rest)); } } } }
/// <summary> /// Static method to remove listener /// </summary> /// <param name="listener"></param> internal static void RemoveListener(FtpListener listener) { FtpListenerManager manager = GetFtpManager(); manager.RemoveLis(listener); }
/// <summary> /// Static method to add listener /// </summary> /// <param name="listener"></param> internal static void AddListener(FtpListener listener) { FtpListenerManager manager = GetFtpManager(); manager.AddLis(listener); }