要在C#中使用FTP上传文件并在服务器上创建文件夹(如果不存在),可以使用FtpWebRequest类来执行此操作。

下面是一个示例代码,演示了如何通过FTP上传文件并在服务器上创建文件夹(如果不存在):

public void UploadFileToFtp(string ftpUrl, string filePath)
{
    // 创建FTP请求对象
    FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpUrl);
    request.Method = WebRequestMethods.Ftp.UploadFile;

    // 设置FTP凭据
    request.Credentials = new NetworkCredential("username", "password");

    // 获取要上传的文件名
    string fileName = Path.GetFileName(filePath);

    // 获取要创建的目录路径
    string directoryPath = Path.GetDirectoryName(ftpUrl);

    try
    {
        // 创建目录
        CreateFtpDirectory(directoryPath);

        // 读取要上传的文件
        byte[] fileContents = File.ReadAllBytes(filePath);

        // 设置请求的内容长度
        request.ContentLength = fileContents.Length;

        // 获取请求的输入流
        using (Stream requestStream = request.GetRequestStream())
        {
            // 将文件内容写入请求的输入流
            requestStream.Write(fileContents, 0, fileContents.Length);
        }

        // 执行FTP请求
        using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
        {
            Console.WriteLine("上传成功!服务器响应:{0}", response.StatusDescription);
        }
    }
    catch (WebException ex)
    {
        Console.WriteLine("上传失败!错误消息:{0}", ex.Message);
    }
}

public void CreateFtpDirectory(string directoryPath)
{
    // 创建FTP请求对象
    FtpWebRequest request = (FtpWebRequest)WebRequest.Create(directoryPath);
    request.Method = WebRequestMethods.Ftp.MakeDirectory;

    // 设置FTP凭据
    request.Credentials = new NetworkCredential("username", "password");

    try
    {
        // 执行FTP请求
        using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
        {
            Console.WriteLine("目录创建成功!服务器响应:{0}", response.StatusDescription);
        }
    }
    catch (WebException ex)
    {
        // 如果目录已存在,则忽略错误
        if (((FtpWebResponse)ex.Response).StatusCode != FtpStatusCode.ActionNotTakenFileUnavailable)
        {
            Console.WriteLine("目录创建失败!错误消息:{0}", ex.Message);
        }
    }
}

在上面的代码中,UploadFileToFtp方法用于上传文件到FTP服务器,CreateFtpDirectory方法用于创建FTP目录。你需要将ftpUrlfilePath参数替换为实际的FTP服务器地址和要上传的文件路径。同时,你需要将usernamepassword替换为实际的FTP凭据。

注意:在使用CreateFtpDirectory方法创建目录时,如果目录已经存在,会抛出一个WebException异常。你可以通过检查FtpWebResponseStatusCode属性来判断目录是否已存在。如果StatusCodeActionNotTakenFileUnavailable,表示目录已存在,可以忽略错误

C# ftp 上传文件如果服务器文件夹不存在就创建文件

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

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