728x90
public void OpenLogDownloadWindow(string logName)
{
try
{
//TODO 최희연 : FTP에서 매개변수 logName을 파일 명으로 가진 파일을 다운로드 창을 띄움
string fileName = string.Empty;
//ftp에서 디렉토리 목록 전체 조회한 데이터
string[] filesInDirectory = LoadFTPData( newUrl + logName, id, pwd, download);
string data1 = string.Empty;
for (int i = 0; i < filesInDirectory.Length; i++)
{
data1 += filesInDirectory[i];
}
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Text file (*.txt)|*.txt|C# file (*.cs)|*.cs";
saveFileDialog.InitialDirectory = "D:\\";
saveFileDialog.Title = "저장 경로를 지정하세요";
saveFileDialog.FileName= logName;
saveFileDialog.OverwritePrompt = true;
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
File.WriteAllText(saveFileDialog.FileName+".txt", data1);
Process.Start(saveFileDialog.FileName + ".txt");
}
}
catch (Exception e)
{
Logs.Error(e.Message, $"{nameof(DroneLogViewModel)}.{nameof(this.OpenLogDownloadWindow)}");
}
}
LoadFTPData( newUrl + logName, id, pwd, download) 메서드
//FTP에서 데이터를 불러오는 메서드
public string[] LoadFTPData(string URL, string ID, string PW, string NAME)
{
Uri ftpUri = new Uri(URL);
FtpWebRequest reqFtp = (FtpWebRequest)WebRequest.Create(ftpUri);
reqFtp.Credentials = new NetworkCredential(ID, PW);
reqFtp.Timeout = 10000;
if (NAME.Equals("name"))
{
reqFtp.Method = WebRequestMethods.Ftp.ListDirectory;//이름 데이터
}
else if (NAME.Equals("all"))
{
reqFtp.Method = WebRequestMethods.Ftp.ListDirectoryDetails; //상세 데이터
}else if (NAME.Equals("download"))
{
reqFtp.Method = WebRequestMethods.Ftp.DownloadFile;
}
FtpWebResponse resFtp = (FtpWebResponse)reqFtp.GetResponse();
StreamReader reader = new StreamReader(resFtp.GetResponseStream());
string strData= reader.ReadToEnd();
//ftp에서 디렉토리 목록 전체 조회한 데이터
string[] filesInDirectory = strData.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
return filesInDirectory;
}
👉🏻 reqFtp.Method = WebRequestMethods.Ftp.DownloadFile;
파일 내용을 불러올 수 있는 메소드
👉🏻 SaveFileDialog
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Text file (*.txt)|*.txt|C# file (*.cs)|*.cs"; //다운로드 할 수 있는 파일 형식 지정
saveFileDialog.InitialDirectory = "D:\\\\"; //다운로드 창을 켰을 때, 디폴트 경로
saveFileDialog.Title = "저장 경로를 지정하세요"; //팝업창의 이름(제목)
saveFileDialog.FileName= logName;
saveFileDialog.OverwritePrompt = true;
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
File.WriteAllText(saveFileDialog.FileName+".txt", data1); //지정한 경로에 파일을 저장
Process.Start(saveFileDialog.FileName + ".txt"); //저장한 파일을 자동으로 팝업(즉시)
}
- c# 에서 제공하는 파일 다운로드 창을 띄울 수 있는기능을 제공 SaveFileDialog
- 파일을 로컬에 저장(.txt 파일로)
- 저장 후 자동 팝업
728x90
728x90
'c#' 카테고리의 다른 글
[c#] tiff 파일을 jpg로 변환하는 프로그램 (0) | 2023.08.01 |
---|---|
[c#] 문자열이 숫자인지 확인 & 문자열 자르기 (0) | 2023.04.06 |
[c#] ftp에서 불러온 파일을 저장할 때, 같은 이름의 파일이 있을 경우 넘버링(숫자) 해주기 (0) | 2023.03.29 |
[c#] FTP에서 디렉토리(Directory)와 파일(File) 불러오기 (0) | 2023.03.21 |
Boxing/UnBoxing (0) | 2023.02.09 |