2010-12-07 189 views

回答

5

AFAIK,与用于重命名文件相同的命令(RNFR/RNTO)用于重命名目录(文件夹)。你的问题可能是你没有权限去做你想做的事情。

0

一种方法是创建一个临时目录,将所有文件移入其中,删除现有目录,创建所需目录并将所有文件移动到新目录中。最后,放下临时目录。

(假设由于原始文件夹不是空的,ftp重命名不起作用)。

+0

后的所有文件和文件夹复制你告诉我,是不可能重命名FTP服务器上的非空文件夹? – 2010-12-07 11:39:17

+0

不,但我记得在某些情况下 - 在某些ftp服务器实现中使用iirc - 如果文件夹不是空的,则无法重命名文件夹。这将是一个解决方法 - 但不是一个很好的解决方案。 – 2010-12-07 11:58:47

0

这可能取决于您正在使用的FTP客户端以及要连接到的FTP服务器。你可以指定它们吗?

1

我用下面的代码FTP登录功能

function ftp_sync ($dir) 
{ 
    global $conn_id; 

    if ($dir != ".") 
    { 
     if (ftp_chdir($conn_id, $dir) == false) 
     { 
      echo ("Change Dir Failed: $dir<BR>\r\n"); 
      return; 
     } 
     if (!(is_dir($dir))) 
      mkdir($dir); 
     chdir ($dir); 
    } 

    $contents = ftp_nlist($conn_id, "."); 
    foreach ($contents as $file) 
    { 
     if ($file == '.' || $file == '..') 
      continue; 

     if (@ftp_chdir($conn_id, $file)) 
     { 
      ftp_chdir ($conn_id, ".."); 
      ftp_sync ($file); 
     } 
     else 
      ftp_get($conn_id, $file, $file, FTP_BINARY); 
    } 

    ftp_chdir ($conn_id, ".."); 
    chdir (".."); 
}