Exemplo n.º 1
0
        private static void DeleteDirectoryRecursively(FTPConnection ftpConnect, string remotePath)
        {
            ftpConnect.ChangeWorkingDirectory(remotePath);

            var files = ftpConnect.GetFileInfos().Where(x => !x.Name.Contains(".") || x.Name.Contains("jpg"));

            foreach (var tmp in files)
            {
                if (!tmp.Dir)
                {
                    ftpConnect.DeleteFile(tmp.Name);
                }
            }

            // delete all subdirectories in the remotePath directory
            foreach (var tmp in files)
            {
                if (tmp.Dir)
                {
                    DeleteDirectoryRecursively(ftpConnect, tmp.Name);
                }
            }

            // delete this directory
            ftpConnect.ChangeWorkingDirectoryUp();
            ftpConnect.DeleteDirectory(remotePath);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 在 FTP 服务器上删除一个目录,递归删除里面的子目录及文件
        /// </summary>
        /// <param name="path"></param>
        public void DeleteDirectory(string path)
        {
            IList <FtpFileInfo> files = GetFiles(path);

            foreach (FtpFileInfo file in files)
            {
                DeleteFile(file.FullName);
            }

            IList <FtpFileInfo> directorys = GetDirectorys(path);

            for (int i = directorys.Count - 1; i >= 0; i--)
            {
                m_pFtp.DeleteDirectory("/" + directorys[i].FullName.TrimStart('/'));
            }

            m_pFtp.DeleteDirectory("/" + path.TrimStart('/'));
        }
Exemplo n.º 3
0
 public override void Delete(IDirectoryViewItem toDelete)
 {
     if (toDelete.IsDirectory)
     {
         connection.DeleteDirectory(toDelete.FullName);
     }
     else
     {
         connection.DeleteFile(toDelete.FullName);
     }
 }
Exemplo n.º 4
0
 /// <summary>
 /// 删除目录,确保目录存在
 /// </summary>
 /// <param name="dirName"></param>
 /// <param name="connection"></param>
 private void DeleteDir(string dirName, FTPConnection connection)
 {
     connection.DeleteDirectory(dirName);
 }