Esempio n. 1
0
 /// <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));
                    }
                }
            }
        }
Esempio n. 5
0
        /// <summary>
        /// Static method to remove listener
        /// </summary>
        /// <param name="listener"></param>
        internal static void RemoveListener(FtpListener listener)
        {
            FtpListenerManager manager = GetFtpManager();

            manager.RemoveLis(listener);
        }
Esempio n. 6
0
        /// <summary>
        /// Static method to add listener
        /// </summary>
        /// <param name="listener"></param>

        internal static void AddListener(FtpListener listener)
        {
            FtpListenerManager manager = GetFtpManager();

            manager.AddLis(listener);
        }