Como posso usar o FTP para mover arquivos entre diretórios?

Eu tenho um programa que precisa mover um arquivo de um diretório para outro em um servidor FTP. Por exemplo, o arquivo está em:

ftp://1.1.1.1/MAIN/Dir1

e preciso mover o arquivo para:

ftp://1.1.1.1/MAIN/Dir2

Encontrei alguns artigos recomendando o uso do comando Renomear e tentei o seguinte:

    Uri serverFile = new Uri(“ftp://1.1.1.1/MAIN/Dir1/MyFile.txt");
    FtpWebRequest reqFTP= (FtpWebRequest)FtpWebRequest.Create(serverFile);
    reqFTP.Method = WebRequestMethods.Ftp.Rename;
    reqFTP.UseBinary = true;
    reqFTP.Credentials = new NetworkCredential(ftpUser, ftpPass);
    reqFTP.RenameTo = “ftp://1.1.1.1/MAIN/Dir2/MyFile.txt";

    FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();

Mas isso não parece funcionar - eu recebo o seguinte erro:

O servidor remoto retornou um erro: (550) Arquivo indisponível (por exemplo, arquivo não encontrado, sem acesso).

No começo, pensei que isso poderia estar relacionado a permissões, mas, tanto quanto posso ver, tenho permissões para todo o site FTP (ele está no meu PC local e a uri é resolvida no localhost).

Deveria ser possível mover arquivos entre diretórios como esse e, se não, como é possível?

Para abordar alguns dos pontos / sugestões levantados:

Eu posso baixar o mesmo arquivo do diretório de origem, então ele definitivamente existe (o que estou fazendo é baixar o arquivo primeiro e depois movê-lo para outro lugar).Posso acessar o site ftp a partir de um navegador (o diretório de origem e o destino)O servidor ftp está sendo executado sob minha própria instância do IIS na minha máquina local.O caminho e o caso estão corretos e não há caracteres especiais.

Além disso, tentei definir o caminho do diretório para:

ftp://1.1.1.1/%2fMAIN/Dir1/MyFile.txt

Tanto para o caminho de origem quanto de destino - mas isso também não faz diferença.

eu encontreiesta artigo, que parece dizer que especificar o destino como um caminho relativo ajudaria - não parece possível especificar um caminho absoluto como destino.

reqFTP.RenameTo = “../Dir2/MyFile.txt";

questionAnswers(9)

yourAnswerToTheQuestion