hinzufügen Ich versuche, eine Strukturansicht zu erstellen, um nach einem Verzeichnis in einem Remote-Server mit FTP/SFTP-Verbindungen zu suchen, Was ich versuche Füllen der Baumansicht mit allen verfügbaren Verzeichnisse mit dem Home-Verzeichnis starten, wie das folgende Beispiel zu tun ist, beginnen:Wie konnte ich Knoten einer Baumansicht als Ordner aus einem Remote-Verzeichnis mit WinSCP und C#
Home---->SubFolder
|
|---->Another Folder
|
|---->MyOtherFolder
Dann, wenn der Benutzer in jedem Ordner starten, klicken sie beginnen, ihre Verzeichnisse aus der Baumansicht angezeigt werden als das folgende Beispiel (Klicken in einen anderen Ordner):
Home ---->SubFolder
|
|---->Another Folder -------> MyFolder1
| | -------> MyFolder2
|
|---->MyOtherFolder
Ich versuche, diese Ordner zu bekommen, aber es ist eine Ausnahme zu werfen, ist es auch das Sammeln von Dateien, keine Ordner ....
dies den Code ist, dass ich ....
private void FillTree()
{
SessionOptions SessionOptions = new SessionOptions();
Session MySession = new Session();
SessionOptions.HostName = InterfaceValues[0];
SessionOptions.UserName = InterfaceValues[2];
SessionOptions.Password = InterfaceValues[3];
SessionOptions.PortNumber = Convert.ToInt32(InterfaceValues[1]);
if (string.Compare(InterfaceValues[9], "FTP", true) == 0)
SessionOptions.Protocol = WinSCP.Protocol.Ftp;
else if (string.Compare(InterfaceValues[9], "SFTP", true) == 0)
{
SessionOptions.Protocol = WinSCP.Protocol.Sftp;
SessionOptions.SshPrivateKeyPath = InterfaceValues[12];
SessionOptions.SshHostKeyFingerprint = InterfaceValues[10];
}
try
{
MySession.Open(SessionOptions);
foreach (RemoteFileInfo info in MySession.EnumerateRemoteFiles("/", "*", EnumerationOptions.AllDirectories))
{
if (info.IsDirectory)
tvRemoteDirectory.Nodes.Add(info.Name);
}
MySession.Close();
}
catch (Exception ex)
{
MySession.Close();
MessageBox.Show("Not possible to connect to " + InterfaceValues[0] + "\nError Message: " + ex.Message);
this.Close();
}
die Ausnahme, die ich erhalte ist:
{WinSCP.SessionRemoteException: Error listing directory '/jpm_icl'. ---> WinSCP.SessionRemoteException: Permission denied. Error code: 3 Error message from server: Permission Denied!
Jede Idee, was ich an dieser Stelle tun könnte?
Entweder die Berechtigung erhalten oder den Fehler ignorieren. – SLaks
Ich versuchte es mit: 'RemoteDirectoryInfo RemoteDirectory = MySitzung.ListDirectory ("/"); foreach (RemoteFileInfo Dateiinfo in RemoteDirectory.Files) { //tvRemoteDirectory.Nodes.Add(fileinfo.Name); } ' aber es ruft". " und ".." und "jpm_icl" aber ich habe keine Ahnung was ist mit "jpm_icl", ich kann diesen Ordner nicht sehen –
Wann bekommst du die Ausnahme? In der 'EnumerateRemoteFiles'-Schleife? Wo können Sie den Ordner 'jpm_icl' nicht sehen? –