Narf! Geschrieben 4. Februar 2021 Geschrieben 4. Februar 2021 Hallo an alle, ich muss über SFTP mit Dateien umgehen. Ich habe mir dazu WinSCP angesehen und alles heruntergeladen und habe auch alles aus der Doku gemacht. Wie bekomme jetzt Zugriff auf das Interface? Oder gibt es sogar einen anderen Weg?
charmanta Geschrieben 4. Februar 2021 Geschrieben 4. Februar 2021 Kannst Du Deine Frage nochmal neu stellen ???? Du willst von Windows aus Dateien über SFTP kopieren, verstanden. Aber WinSCP ist doch ein Programm mit GUI ?? Oder willst Du sowas ? https://www.nikolaus-lueneburg.de/2016/12/ssh-und-sftp-mit-der-powershell/
arlegermi Geschrieben 6. Februar 2021 Geschrieben 6. Februar 2021 WinSCP bietet auch eine .NET COM Library: https://winscp.net/eng/docs/library Da ist doch eigentlich alles ganz gut beschrieben für's erste. Wo genau bleibst du denn stecken?
Narf! Geschrieben 9. Februar 2021 Autor Geschrieben 9. Februar 2021 Ich programmiere mit VC++ und MFC. Bisher habe ich CFTPConnection usw. genutzt, um auf einem Server mit Dateiverzeichnissen zu arbeiten. Jetzt brauche ich dazu SFTP. Das WinSCP bietet dazu die .Net Assemblys bzw. COM. Wie kann ich WinSCP in das Visula Studio 2017 bzw. in mein Projekt einbinden, um das zu nutzen?
Whiz-zarD Geschrieben 9. Februar 2021 Geschrieben 9. Februar 2021 (bearbeitet) Ist doch alles in der WinSCP-Dokumentation beschrieben: https://winscp.net/eng/docs/library_install Wo hast du denn genau deine Probleme? Bearbeitet 9. Februar 2021 von Whiz-zarD
Narf! Geschrieben 10. Februar 2021 Autor Geschrieben 10. Februar 2021 Ja, ist beschrieben, wie man das COM registriert. Habe auch eine tlb-Datei im Ordner erhalten. Aber wie spreche ich dieses COM-Interface an?
Whiz-zarD Geschrieben 10. Februar 2021 Geschrieben 10. Februar 2021 Naja, beim COM-Interface hast du es ja nicht direkt mit den konkreten Datentypen zu tun, sondern mit Objekten, die du von der COM-Schnittstelle bekommst. Du musst also um die Beschaffenheit der Objekte bescheid wissen. Da kenne ich mich aber mit VC++ nicht aus, wie man letztendlich die COM-Schnittstelle nutzt. In C# gibt es die Methode Type.GetTypeFromProgID() um sich die ID zu einem Datentyp zu holen um dann per Activator.CreateInstance() eine Instanz des Datentypens zu machen. Ich würde vielleicht auch eher die Assembly per NuGet einbinden. Das hat den Vorteil, dass man da direkt mit den konkreten Datentypen arbeiten kann. Wenn ich das richtig verstehe, ist das ja auch nur ein Wrapper.
Narf! Geschrieben 10. Februar 2021 Autor Geschrieben 10. Februar 2021 Und wie würde ich das mit dem NuGet anstellen? Das habe ich bisher noch nicht gebraucht.
Whiz-zarD Geschrieben 10. Februar 2021 Geschrieben 10. Februar 2021 Der NuGet-Paketmanager sollte eigentlich bekannt sein, wenn man mit .NET arbeitet. In Visual Studio einfach mit der rechten Maustaste auf das Projekt klicken und "NuGet Pakete verwalten..." auswählen und dort das Paket WinSCP installieren. Dann kannst du halt die Datenklassen verwenden. In der Dokumentation findet man zwar keine Beispiele für VC++ aber welche für C#, die man dann in die Sprache überführen müsste.
Narf! Geschrieben 11. Februar 2021 Autor Geschrieben 11. Februar 2021 Ich habe bisher nicht mit .Net gearbeitet. Na mal sehen, wie weit ich komme.
Narf! Geschrieben 17. Februar 2021 Autor Geschrieben 17. Februar 2021 Nicht sehr weit. Auch in meinem C++-Projekt kann ich das NuGet-Paket herunterladen bzw. installieren. Trotzdem komme ich nicht an die COM-Interfaces ran. Ich kenne ja die Namen nicht. Und um eine lib-Datei zu erstellen brauche ich den Embarcadero C++ Builder. Dort muss man sich registrieren. Und nur für eine lib erstellen; ich weiß nicht. 'schuldigung wenn ich mich hier so anstelle. Mir fehlt die Erfahrung damit.
Whiz-zarD Geschrieben 17. Februar 2021 Geschrieben 17. Februar 2021 (bearbeitet) Wenn du das NuGet-Paket installierst, kannst du direkt die Klassen verwenden und musst nicht über die COM-Schnittstelle mit WinSCP kommunizieren. Das machen die Klassen für dich. Ich kenne mich mit Visual C++ nicht besonders gut aus aber schaue dir doch die C#-Beispiele an und wandel den Code in Visual C++ selbst um. Was hast du denn überhaupt vor? Wenn du dich nur per SFTP auf einen Server verbinden möchtest, gibt es ja auch andere Wege. Bearbeitet 17. Februar 2021 von Whiz-zarD
Narf! Geschrieben 18. Februar 2021 Autor Geschrieben 18. Februar 2021 Leider kann man das nicht so einfach wandeln, da dazu entweder die lib-Datei notwendig wäre oder eben COM. Ich möchte auf dem SFTP-Server in bestimmte Verzeichniss gehen, mir dort den Inhalt auflisten lassen und ggf. Ordner mit allem herunterladen und auch hochladen können. So wie ich das bisher mit FTP (CInternetSession, CFtpConnection) gemacht habe. Für einen anderen Weg wäre ich dankbar.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden