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? Zitieren
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/ Zitieren
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? Zitieren
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? Zitieren
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 Zitieren
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? Zitieren
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. Zitieren
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. Zitieren
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. Zitieren
Narf! Geschrieben 11. Februar 2021 Autor Geschrieben 11. Februar 2021 Ich habe bisher nicht mit .Net gearbeitet. Na mal sehen, wie weit ich komme. Zitieren
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. Zitieren
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 Zitieren
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. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.