0
WinSCP .NET 어셈블리를 사용하는 좋은 WebDAV 구현 예제를 찾을 수 없습니다.WinSCP .NET WebDAV 예제
특히 WebDAV 서버로 파일을 푸시하는 코드를 찾고 있습니다.
누군가 나를 시작할 수 있도록 몇 가지 샘플 C# 코드를 제공해 주시겠습니까?
WinSCP .NET 어셈블리를 사용하는 좋은 WebDAV 구현 예제를 찾을 수 없습니다.WinSCP .NET WebDAV 예제
특히 WebDAV 서버로 파일을 푸시하는 코드를 찾고 있습니다.
누군가 나를 시작할 수 있도록 몇 가지 샘플 C# 코드를 제공해 주시겠습니까?
다음은 WinSCP .NET WebDAV 파일 푸시 구현의 예입니다.
예쁜 것은 아니지만 일을하는 것처럼 보입니다.
바라기를 이것은 누군가 다른 사람을 초조하게하는 몇 시간을 절약하기를 바랍니다.
빠른 참고 : WebDavUploadSettings.Default.XXXX는 내 모든 연결 정보가 저장되는 설정 파일에 액세스하는 방법입니다.
public static void SendFileWebDav(string FileToSend)
{
if (!DoesFileExist(FileToSend))
{
throw new Exception(string.Format("Cannot Find File {0}", FileToSend));
}
SessionOptions sessionOptions = new SessionOptions();
sessionOptions.UserName = WebDavUploadSettings.Default.Username;
sessionOptions.Password = WebDavUploadSettings.Default.Password;
if (string.IsNullOrWhiteSpace(WebDavUploadSettings.Default.FolderPathToPushTo)) //WINSCP will throw an error if root directory doesn't start with/
{
//Haven't tested this.
sessionOptions.WebdavRoot = "/";
}
else
{
sessionOptions.WebdavRoot = WebDavUploadSettings.Default.FolderPathToPushTo.ToString(); //Added .ToString() here because I was getting 404 error other wise? Maybe because is was not reading in the setting correctly.
}
//Make sure you define this as a URL without protocal. (Leave off Https:// and Http://)
sessionOptions.HostName = WebDavUploadSettings.Default.Website;
sessionOptions.Protocol = Protocol.Webdav;
Session WebDavSession = new Session();
try
{
WebDavSession.Open(sessionOptions);
TransferOptions TransferOptions = new TransferOptions();
TransferOptions.TransferMode = TransferMode.Automatic;
TransferOperationResult transferResult;
transferResult = WebDavSession.PutFiles(FileToSend,Path.GetFileName(FileToSend), false, TransferOptions);
transferResult.Check();
}
catch (Exception e)
{
throw e;
}
finally
{
WebDavSession.Close();
}
}