프로그램(C# etc.)

ftp 주소의 jpg 파일 전부 삭제 코드

질문폭격 2023. 1. 12. 13:21

다음은 C# 및 FtpWebRequest 클래스를 사용하여 특정 FTP 폴더의 모든 JPG 파일을 삭제하는 방법에 대한 예입니다:

public static void DeleteAllJpgFiles(string ftpServer, string ftpUsername, string ftpPassword, string path)
{
    FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpServer + "/" + path);
    request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
    request.Credentials = new NetworkCredential(ftpUsername, ftpPassword);

    using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
    {
        using (StreamReader reader = new StreamReader(response.GetResponseStream()))
        {
            string line = reader.ReadLine();
            while (!string.IsNullOrEmpty(line))
            {
                if(line.EndsWith(".jpg")){
                    string[] lineArray = line.Split(new char[] { ' ' }, 9, StringSplitOptions.RemoveEmptyEntries);
                    string fileName = lineArray[lineArray.Length - 1];
                    DeleteFile(ftpServer, ftpUsername, ftpPassword, path + "/" + fileName);
                }
                line = reader.ReadLine();
            }
        }
    }
}

이 코드는 WebRequestMethods를 사용하여 지정된 폴더에 있는 파일 및 디렉터리 목록을 가져오라는 요청을 FTP 서버로 보냅니다.Ftp.ListDirectoryDetails 메서드 및 ListDirectoryDetails 속성을 사용한 다음 응답 스트림을 한 줄씩 읽습니다.
각 행에 대해 .jpg로 끝나는지 확인하고 끝나면 파일 이름을 추출하고 이전 방법인 DeleteFile을 호출하여 삭제합니다.
이 기능을 호출하여 FTP 서버 주소, 사용자 이름 및 암호, JPG 파일을 삭제할 폴더 이름과 같은 필수 매개 변수를 전달할 수 있습니다.

 

DeleteAllJpgFiles("ftp://ftp.yourserver.com", "ftpusername", "ftppassword", "folder_name");

이렇게 하면 FTP 서버의 지정된 폴더에 있는 모든 JPG 파일이 삭제되고 콘솔의 각 폴더에 대한 삭제 상태가 인쇄됩니다.
FTP 서버에 파일을 삭제할 수 있는 권한이 있는지 확인하십시오.