Я пытаюсь загрузить несколько файлов с SFTP-сервера и сохранить их по пути установки (или на самом деле, ЛЮБОМУ пути на данный момент только для того, чтобы он работал). Однако я получаю исключение UnauthorizedAccess независимо от того, где я пытаюсь сохранить файлы.
Насколько известно, для сохранения файлов в установочном каталоге не требуется специальных разрешений (поэтому я выбрал эту папку).
Thread myThread = new Thread(delegate() {
string host;
string username;
string password;
// Path to folder on SFTP server
string pathRemoteDirectory = "public_html/uploads/17015/";
// Path where the file should be saved once downloaded (locally)
StorageFolder localFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;
string pathLocalDirectory = localFolder.Path.ToString();
var methods = new List<AuthenticationMethod>();
methods.Add(new PasswordAuthenticationMethod(username, password));
//TODO - Add SSH Key auth
var con = new ConnectionInfo(host, 233, username, methods.ToArray());
using (SftpClient sftp = new SftpClient(con))
{
try
{
sftp.Connect();
var files = sftp.ListDirectory(pathRemoteDirectory);
// Iterate over them
foreach (SftpFile file in files)
{
Console.WriteLine("Downloading {0}", file.FullName);
using (Stream fileStream = File.OpenWrite(Path.Combine(pathLocalDirectory, file.Name)))
{
sftp.DownloadFile(file.FullName, fileStream);
Debug.WriteLine(fileStream);
}
}
sftp.Disconnect();
}
catch (Exception er)
{
Console.WriteLine("An exception has been caught " + er.ToString());
}
}
});
Соединение с сервером все в порядке, исключение происходит в этой строке.
using (Stream fileStream = File.OpenWrite(Path.Combine(pathLocalDirectory, file.Name)))
Я, должно быть, здесь упускаю что-то очевидное, но стоит отметить, что я также пытался писать в специальные папки, такие как рабочий стол, пользовательскую папку документов, а также прямо на диск C: /, все с тем же исключением. Я также работаю с правами администратора, и у меня установлены правильные разрешения в папках.