■ C#에서 WinSCP를 이용하여 sFTP를 접속하는 방법
1. 인터넷에서 WinSCP를 다운로드한다. (https://winscp.net/eng/download.php)
2. 접속하면 아래 이미지와 같이 나오는데 사각형 부분을 눌러 설치한다.

3. 설치된 경로에 가서 WinSCP.exe, WinSCPnet.dll를 복사한다. 그리고 C#으로 만든 프로그램 실행파일 위치로 옮겨준다.
실행하는 데 있어, 따로 dll을 모아놓은 곳이 있으면 그쪽으로 옮겨준다. (사용자들이 프로그램 만든 구조에 따라 위치가 다름)
4. 아래와 같은 코드를 작성한다.
// 서버 접속
Session session = new Session();
SessionOptions session_options = new SessionOptions();
session.ExecutablePath = @"D:\WinSCP.exe"; // WinSCP.exe 가 있는 경로
session_options.Protocol = Protocol.Sftp;
session_options.HostName = Host; // 서버의 Host 넣기
session_options.PortNumber = Port; // 서버의 Port 넣기
session_options.UserName = UserName; // 서버의 UserName 넣기
session_options.Password = Password; // 서버의 Password 넣기
session_options.SshHostKeyFingerprint = FingerPrint; // 서버의 FingerPrint 넣기
session.Open(session_options); // 접속 완료
session.GetFiles(서버파일경로, 로컬파일경로, false).Check(); // Download
session.PutFiles(로컬파일경로, 서버파일경로, false).Check(); // Upload
// Download 하지 않고, 이미지 바로 가져오는 방법
using (Stream remoteStream = session.GetFile(RemoteFullPath)) // RemoteFullPath : 이미지 파일이 있는 경로
using (MemoryStream ms = new MemoryStream())
{
remoteStream.CopyTo(ms);
ms.Position = 0;
Image imgReturn = Image.FromStream(ms);
}
'C#' 카테고리의 다른 글
| C# Json 파일 역슬래쉬(\) 오류 방지 (0) | 2025.10.20 |
|---|---|
| 프로그램 실행 시, Font 자동 설치하는 방법 (0) | 2025.10.15 |
| Visual Studio 버전 타임라인 (3) | 2025.07.19 |
| C# 오라클 커넥션 (Oracle Connection) 종류 (0) | 2025.06.15 |
| VS 2005 (.NET 2.0, C# 2.0)의 주요 특징 (0) | 2025.04.20 |