创建文件夹(mkdir)并将文件移动到此(重命名)

时间:2014-06-17 07:59:26

标签: php rename mkdir

我在StackOverflow上搜索但是我找不到解决问题的方法.. 我应该创建一个目录(如果尚未存在),并移动以前在此新文件夹上创建的文件(.Zip)

  • 我正确创建了zip文件
  • 我正确创建了新目录(如果不存在)
  • 我在新目录中正确移动了zip文件,但有时候,当我必须创建文件夹并移动文件时,会创建文件夹,但文件不会移动,可能是因为命令执行之前文件夹已创建

我尝试了以下解决方案

//create zip
Zip('editor', 'backup_'.date("d_m_Y__H_i_s").'.zip');
//create folder
mkdir('backup', 0777, true);
//move file
rename('backup_'.date("d_m_Y__H_i_s").'.zip', 'backup/backup_'.date("d_m_Y__H_i_s").'.zip');



//create zip
Zip('editor', 'backup_'.date("d_m_Y__H_i_s").'.zip');
//create folder
$ret = mkdir('backup', 0777, true);
//move file
rename('backup_'.date("d_m_Y__H_i_s").'.zip', 'backup/backup_'.date("d_m_Y__H_i_s").'.zip');



//create zip
Zip('editor', 'backup_'.date("d_m_Y__H_i_s").'.zip');
//create folder
$ret = mkdir('backup', 0777, true);
//move file
move_backup();

function move_backup(){

     rename('backup_'.date("d_m_Y__H_i_s").'.zip', 'backup/backup_'.date("d_m_Y__H_i_s").'.zip');

}

更新:解决方案

  @date_default_timezone_set("Europe/Rome");
  $my_time = date("d_m_Y__H_i_s");


  function Zip($source, $destination){
      ....
  }

  function sposto_backup($t){

    rename('backup_'.$t.'.zip', 'backup/backup_'.$t.'.zip');

  }


  Zip('editor', 'backup_'.$my_time.'.zip');

  if (!file_exists('backup')) {
       $r = mkdir('backup', 0777, true);
       sposto_backup($my_time);
  }else{
    sposto_backup($my_time);
  }

2 个答案:

答案 0 :(得分:0)

这很可能是权限问题 - 如果您在代码中启用了错误报告或陷阱错误,那么您可以自己识别问题。

答案 1 :(得分:0)

您可以尝试将mkdir()移动到if语句中,因为PHP documentation表示mkdir在成功时返回true。这意味着一旦成功执行了mkdir函数,if语句中的内容就会执行。

if(mkdir('backup', 0777, true))
{

}

if($ret = mkdir('backup', 0777, true))
{

}