2016-10-24 3 views
0

Ich bin sehr neu in C#, ich habe einige Batch-Dateien und einige Sachen für ein Spiel namens Arma 3, das SQF und C++ verwendet. Also bitte vergib meine Unwissenheit, ich versuche zu lernen.C# Select Directory, Default Directory

Ich habe diesen Code vor kurzem mit einer GUI statt einer Konsole App geschrieben. für Bildungszwecke. Es lädt meinen FTP-Server herunter und listet den Verzeichnisinhalt auf. Allerdings, wenn ich die Datei herunterlade, heißt es, dass sie heruntergeladen wird und nirgends auf meinem PC angezeigt wird. Der FTP-Server verbindet sich und sagt sogar, dass er richtig übertragen wurde.

Wie bekomme ich eine "Select Directory" -Option angezeigt? oder sogar ein Standardpfad?

Ich habe ein paar Dinge ausprobiert und habe aufgelegt. using System.IO; & using System.Windows; erzeugt einen Fehler von „"Path" ist mehrdeutig“

using System.Windows; 
using System.Net; 
using System.IO; 


namespace Downloader 
{ 
    public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
      InitializeComponent(); 
     } 

     private void DLBTN_Click(object sender, RoutedEventArgs e) 
     { 


      FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://xxx.xxx.xxx.xxx/test.txt"); 
      request.Method = WebRequestMethods.Ftp.DownloadFile; 

      request.Credentials = new NetworkCredential("test", "test123"); 

      FtpWebResponse response = (FtpWebResponse)request.GetResponse(); 

      MessageBox.Show("Download Complete", response.StatusDescription); 
     } 

     private void CNTBTN_Click(object sender, RoutedEventArgs e) 
     { 
      FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://xxx.xxx.xxx.xxx/"); 
      request.Method = WebRequestMethods.Ftp.ListDirectoryDetails; 

      request.Credentials = new NetworkCredential("test", "test123"); 

      FtpWebResponse response = (FtpWebResponse)request.GetResponse(); 

      Stream responseStream = response.GetResponseStream(); 
      StreamReader reader = new StreamReader(responseStream); 
      MessageBox.Show(reader.ReadToEnd()); 
     } 
    } 
} 
+0

Versuchen Powershell? –

Antwort

2

Du bist nicht wirklich tun etwas mit der Antwort, die Sie erhalten. Sie erhalten das Antwortobjekt, aber Sie rufen nie response.GetResponseStream() auf, um tatsächlich einen Stream zu erhalten, noch öffnen Sie jemals eine Datei zum Schreiben.

Sie so etwas wie dieses benötigen würde (nur die Spitze von meinem Kopf abschreiben, nicht getestet):

using (FileStream outStream = new FileStream(@"C:\outputfile.txt")) // or whatever 
using (Stream inStream = response.GetResponseStream()) 
{ 
    inStream.CopyTo(outStream); // Could also await instream.CopyToAsync() instead 
} 

Wenn Sie einen Pfad zu veranlassen wollen, zu speichern, sollten Sie in aussehen die SaveFileDialog Klasse.