【问题标题】:Create folder (mkdir) and move a file into this (rename)创建文件夹(mkdir)并将文件移动到此(重命名)
【发布时间】:2014-06-17 07:59:26
【问题描述】:

我在 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);
  }

【问题讨论】:

  • 唯一想到的是您重复计算date 值。如果微秒是这样的,在调用之间的几分之一秒内,它会进入下一秒,那么您将使用不同的文件。
  • @Jeremy Miller 我尝试将 date() 结果保存为变量!
  • 这么说,你的意思是它现在可以按预期工作,所以你有一个问题的解决方案,对吧?

标签: php rename mkdir


【解决方案1】:

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

【讨论】:

  • 我认为这不是权限问题,因为大多数时候一切正常
【解决方案2】:

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

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

}

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

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多