none
WebRequestMethods.Ftp.GetDateTimestamp RRS feed

  • 问题

  • string strFtpAddr = txtFtpAddr.Text.Trim().ToLower();
                if (strFtpAddr.Substring(0, 6) != "ftp://")
                {
                    strFtpAddr = "ftp://" + strFtpAddr;
                }

                FtpWebRequest ftpRequest = (FtpWebRequest)FtpWebRequest.Create(strFtpAddr);
                ftpRequest.Credentials = new NetworkCredential(txtUserName.Text.Trim(), txtPassword.Text.Trim());
                ftpRequest.Method = WebRequestMethods.Ftp.GetDateTimestamp;
                StreamReader reader =new StreamReader(ftpRequest.GetRequestStream());
                string str = reader.ReadLine();
                reader.Close();
                reader.Dispose();
                txtResult.Text += txtResult + "\r\n";

    我想获取文件的最后修改日期,怎么做呀?
    我这样行吗?
    StreamReader reader =new StreamReader(ftpRequest.GetRequestStream());
    无法发送具有此谓词类型的内容正文。
    2009年10月26日 2:39

答案

全部回复

  • 好了,知道怎么回事了。FtpWebResponse
    2009年10月26日 2:51
  • string strFtpAddr = txtFtpAddr.Text.Trim().ToLower();
                if (strFtpAddr.Substring(0, 6) != "ftp://")
                {
                    strFtpAddr = "ftp://" + strFtpAddr;
                }

                FtpWebRequest req = (FtpWebRequest)FtpWebRequest.Create(strFtpAddr);
                req.Credentials = new NetworkCredential(txtUserName.Text.Trim(), txtPassword.Text.Trim());

                req.Method = WebRequestMethods.Ftp.DownloadFile;

                FtpWebResponse ftpResponse =(FtpWebResponse)req.GetResponse();
                StreamReader reader = new StreamReader(ftpResponse.GetResponseStream());
                StreamWriter writer=new StreamWriter(Path.Combine(txtLocal.Text.Trim(),Path.GetFileName(strFtpAddr)));
                char[] bytes=new char[1024];
                int count=0;

                do{
                    count=reader.Read(bytes, 0, 1024);
                    writer.Write(bytes, 0, count);
                }
                while(count<1024);
                reader.Close();
                reader.Dispose();

                writer.Close();
                writer.Dispose();
                txtResult.Text += txtResult + "\r\n";

    这样写有错吗?
    count=reader.Read(bytes, 0, 1024);
    无法访问已释放的对象。
    对象名:“System.Net.Sockets.NetworkStream”。

    2009年10月26日 2:57
  • while(count<1024);
    晕死,写错了。
    • 已标记为答案 male110 2009年10月26日 6:18
    2009年10月26日 6:18