【问题标题】:C# Select Directory, Default DirectoryC#选择目录,默认目录
【发布时间】:2016-10-24 23:51:27
【问题描述】:

我对 C# 非常陌生,我已经为使用 SQF 和 C++ 的名为 Arma 3 的游戏编写了一些批处理文件和一些东西。所以请原谅我的无知,我正在努力学习。

我最近使用 GUI 而不是控制台应用程序编写了此代码。用于教育目的。它从我的 FTP 服务器下载并列出目录内容。但是,当我下载文件时,它说它已下载并且它没有显示在我的 PC 上的任何位置。 FTP 服务器连接,甚至说它传输正确。

如何显示“选择目录”选项?甚至是默认路径?

我已经尝试了一些事情并挂断了电话。 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());
        }
    }
}

【问题讨论】:

  • 试试 Powershell?

标签: c# download path ftp default


【解决方案1】:

您实际上并没有对收到的回复任何事情。您获得了响应对象,但您从不调用 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 类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-10
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    • 2012-01-21
    • 1970-01-01
    • 2013-07-11
    相关资源
    最近更新 更多