C# Select 目录,默认目录
C# Select Directory, Default Directory
我是 C# 的新手,我已经为一款名为 Arma 3 的游戏完成了一些批处理文件和一些东西,该游戏使用 SQF 和 C++。所以请原谅我的无知,我正在努力学习。
我最近使用 GUI 而不是控制台应用程序编写了这段代码。用于教育目的。它从我的 FTP 服务器下载并列出目录内容。但是,当我下载该文件时,它说它已下载并且没有显示在我的 PC 上的任何位置。 FTP 服务器连接,甚至说传输正确。
如何显示 "Select Directory" 选项?甚至默认路径?
我尝试了一些方法,但都挂断了。
using System.IO;
& using System.Windows;
产生错误“"Path"
不明确”
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());
}
}
}
你实际上并没有做任何你得到的回应。您获得了响应对象,但您从未调用 response.GetResponseStream() 来实际获取流,也从未打开要写入的文件。
你需要这样的东西(只是从我的头上写下来,还没有测试过):
using (FileStream outStream = new FileStream(@"C:\outputfile.txt")) // or whatever
using (Stream inStream = response.GetResponseStream())
{
inStream.CopyTo(outStream); // Could also await instream.CopyToAsync() instead
}
如果你想提示保存路径,你应该查看 SaveFileDialog class.
我是 C# 的新手,我已经为一款名为 Arma 3 的游戏完成了一些批处理文件和一些东西,该游戏使用 SQF 和 C++。所以请原谅我的无知,我正在努力学习。
我最近使用 GUI 而不是控制台应用程序编写了这段代码。用于教育目的。它从我的 FTP 服务器下载并列出目录内容。但是,当我下载该文件时,它说它已下载并且没有显示在我的 PC 上的任何位置。 FTP 服务器连接,甚至说传输正确。
如何显示 "Select Directory" 选项?甚至默认路径?
我尝试了一些方法,但都挂断了。
using System.IO;
& using System.Windows;
产生错误“"Path"
不明确”
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());
}
}
}
你实际上并没有做任何你得到的回应。您获得了响应对象,但您从未调用 response.GetResponseStream() 来实际获取流,也从未打开要写入的文件。
你需要这样的东西(只是从我的头上写下来,还没有测试过):
using (FileStream outStream = new FileStream(@"C:\outputfile.txt")) // or whatever
using (Stream inStream = response.GetResponseStream())
{
inStream.CopyTo(outStream); // Could also await instream.CopyToAsync() instead
}
如果你想提示保存路径,你应该查看 SaveFileDialog class.