private static string ftpServerIP = "192.168.0.95";
        private static string ftpUserID = "Administrator";
        private static string ftpPassword = "trw2007";        static void Main(string[] args)
        {
            Upload(@"E:\TEMP\ftpUpload.txt");
        }        private void Upload(string filename)
        {
            FileInfo fileInf = new FileInfo(filename);
            string uri = "ftp://" + ftpServerIP + "/" + fileInf.Name;
            FtpWebRequest reqFTP;            // 根据uri创建FtpWebRequest对象 
            reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" + fileInf.Name));            // ftp用户名和密码
            reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);            // 默认为true,连接不会被关闭
            // 在一个命令之后被执行
            reqFTP.KeepAlive = false;            // 指定执行什么命令
            reqFTP.Method = WebRequestMethods.Ftp.UploadFile;            // 指定数据传输类型
            reqFTP.UseBinary = true;            // 上传文件时通知服务器文件的大小
            reqFTP.ContentLength = fileInf.Length;            // 缓冲大小设置为2kb
            int buffLength = 2048;            byte[] buff = new byte[buffLength];
            int contentLen;            // 打开一个文件流 (System.IO.FileStream) 去读上传的文件
            FileStream fs = fileInf.OpenRead();
            try
            {
                // 把上传的文件写入流
                Stream strm = reqFTP.GetRequestStream();                // 每次读文件流的2kb
                contentLen = fs.Read(buff, 0, buffLength);                // 流内容没有结束
                while (contentLen != 0)
                {
                    // 把内容从file stream 写入 upload stream
                    strm.Write(buff, 0, contentLen);                    contentLen = fs.Read(buff, 0, buffLength);
                }                // 关闭两个流
                strm.Close();
                fs.Close();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }    同样差不多的代码实现FTP下载没有问题,但是一上传文件就在 Stream strm = reqFTP.GetRequestStream(); 这一句抛出异常。不解,向大家请教。

解决方案 »

  1.   

    我是以管理员身份登录到xp,文件夹是共享文件夹。仍旧还是 Stream strm = reqFTP.GetRequestStream(); 这一句抛出异常。
    请问glacier111,还需要什么额外的设置吗?
      

  2.   

    有什么我没想到的,大家提醒我一下,你们的意见很重要,着急ing
      

  3.   

    在文件夹属性中的安全选项中,把Everyone用户给所有权限
      

  4.   

    就是向glacier111说的那么设定的,将完全控制,更改,只读都赋予Everyone用户了。现象依旧。
      

  5.   

    服务器的FTP目录ftproot的权限设置也设置为将完全控制,更改,只读都赋予Everyone用户了。
      

  6.   

    回wyhao:异常内容如题:远程服务器返回错误: (550) 文件不可用
      

  7.   

    我也遇到了类似的问题,貌似是权限的问题。
    可以查看一下ftp服务器,该ftp用户的权限,另外还需要查看一下ftp服务器的防火墙之类的
      

  8.   

    就是路径错误的问题,我做FTP的时候也是老返回这个错误提示,后来修改了路径就没问题了,基本上都是路径发生错误,然后在你指定的路径下找不到你指定的文件名所以才出现这样的错误提示!
      

  9.   

    ftp路径不对 后面要加个根文件夹