SFTP 프로토콜을 사용하는 WinSCP .NET 어셈블리를 통해 파일 서버에 파일을 업로드하기 위해 C#에서 콘솔 응용 프로그램을 작성하고 있습니다. 서버에 연결하여 파일을 서버에 배치 할 수는 있지만 원하는 정확한 위치에 배치 할 수는 없습니다. 아래 코드를 찾아주세요 :SFTP 서버에서 WinSCP를 사용하여 C#을 통해 디렉토리 만들기
path = \Repository\Scan\Java\ant\UAT
zippath = C:\Temp\UAT_17-11-2016-19_40_05.zip
sftppath = \Repository\Scan\Java\ant\UAT\UAT_17-11-2016-19_40_05.zip
ZIP 파일이 RepositoryScanJavaantUATUAT_17-11-2016-19_40_05.zip
같은 이름을 가진 Repository
폴더 수준에 배치지고
. 디렉토리가 서버에 존재하지 않으면 생성되지 않습니다.
using (Session session = new Session())
{
session.Open(sessionOptions);
{
if (System.IO.Directory.Exists(path))
{
Console.WriteLine("That path exists already.");
}
else
{
DirectoryInfo di = System.IO.Directory.CreateDirectory(path);
Console.WriteLine(
"The directory was created successfully at {0}.",
System.IO.Directory.GetCreationTime(path));
}
try
{
Console.WriteLine("Put Files in the folder");
TransferOptions transferOptions = new TransferOptions();
transferOptions.TransferMode = TransferMode.Binary;
TransferOperationResult transferResult;
transferResult = session.PutFiles(zippath, sftppath, false, transferOptions);
transferResult.Check();
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}
미리 감사드립니다.
나는 당신이 무엇을 제안 사용하려고했지만이 메시지와 함께 예외가 발생합니다 "재귀 호출 허용 안 됨". – Jordan
@Jordan이 Q & A의 코드를 사용하여 예외를 얻을 수는 없습니다. 코드가 더 복잡해야합니다. 문제가 있으면 새로운 질문을하십시오. –
나는 당신이 여기서 제안한 유일한 코드가 예외의 원인이라고 확신한다. 난 그것을 디버깅하고 ** session.FileExists (경로) ** 직후에 예외가 throw됩니다. 이 문제는 WinSCP 포럼에서도보고되었습니다. [여기] (https://winscp.net/forum/viewtopic.php?t=11193) – Jordan