要在C#中使用FTP上传文件并在服务器上创建文件夹(如果不存在),可以使用FtpWebRequest类来执行此操作。\n\n下面是一个示例代码,演示了如何通过FTP上传文件并在服务器上创建文件夹(如果不存在):\n\ncsharp\npublic void UploadFileToFtp(string ftpUrl, string filePath)\n{\n // 创建FTP请求对象\n FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpUrl);\n request.Method = WebRequestMethods.Ftp.UploadFile;\n\n // 设置FTP凭据\n request.Credentials = new NetworkCredential("username", "password");\n\n // 获取要上传的文件名\n string fileName = Path.GetFileName(filePath);\n\n // 获取要创建的目录路径\n string directoryPath = Path.GetDirectoryName(ftpUrl);\n\n try\n {\n // 创建目录\n CreateFtpDirectory(directoryPath);\n\n // 读取要上传的文件\n byte[] fileContents = File.ReadAllBytes(filePath);\n\n // 设置请求的内容长度\n request.ContentLength = fileContents.Length;\n\n // 获取请求的输入流\n using (Stream requestStream = request.GetRequestStream())\n {\n // 将文件内容写入请求的输入流\n requestStream.Write(fileContents, 0, fileContents.Length);\n }\n\n // 执行FTP请求\n using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())\n {\n Console.WriteLine("上传成功!服务器响应:{0}", response.StatusDescription);\n }\n }\n catch (WebException ex)\n {\n Console.WriteLine("上传失败!错误消息:{0}", ex.Message);\n }\n}\n\npublic void CreateFtpDirectory(string directoryPath)\n{\n // 创建FTP请求对象\n FtpWebRequest request = (FtpWebRequest)WebRequest.Create(directoryPath);\n request.Method = WebRequestMethods.Ftp.MakeDirectory;\n\n // 设置FTP凭据\n request.Credentials = new NetworkCredential("username", "password");\n\n try\n {\n // 执行FTP请求\n using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())\n {\n Console.WriteLine("目录创建成功!服务器响应:{0}", response.StatusDescription);\n }\n }\n catch (WebException ex)\n {\n // 如果目录已存在,则忽略错误\n if (((FtpWebResponse)ex.Response).StatusCode != FtpStatusCode.ActionNotTakenFileUnavailable)\n {\n Console.WriteLine("目录创建失败!错误消息:{0}", ex.Message);\n }\n }\n}\n\n\n在上面的代码中,UploadFileToFtp方法用于上传文件到FTP服务器,CreateFtpDirectory方法用于创建FTP目录。你需要将ftpUrlfilePath参数替换为实际的FTP服务器地址和要上传的文件路径。同时,你需要将usernamepassword替换为实际的FTP凭据。\n\n注意:在使用CreateFtpDirectory方法创建目录时,如果目录已经存在,会抛出一个WebException异常。你可以通过检查FtpWebResponseStatusCode属性来判断目录是否已存在。如果StatusCodeActionNotTakenFileUnavailable,表示目录已存在,可以忽略错误。


原文地址: https://www.cveoy.top/t/topic/pCtL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录