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); }
/// <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('/')); }
public override void Delete(IDirectoryViewItem toDelete) { if (toDelete.IsDirectory) { connection.DeleteDirectory(toDelete.FullName); } else { connection.DeleteFile(toDelete.FullName); } }
/// <summary> /// 删除目录,确保目录存在 /// </summary> /// <param name="dirName"></param> /// <param name="connection"></param> private void DeleteDir(string dirName, FTPConnection connection) { connection.DeleteDirectory(dirName); }