【问题标题】:How to move files to another folder in php如何在php中将文件移动到另一个文件夹
【发布时间】:2017-08-11 10:17:58
【问题描述】:

我在“files”文件夹中有 4 个 csv 文件,我想将这些带有内容的文件移动到另一个文件夹(即备份),文件如下所示。

  1. abc.csv
  2. abc1.csv
  3. abc2.csv

$files = scandir('files');
$destination = 'backups/';
$date = date('Y-m-d');
foreach($files as $file){
    $rename_file = $file.'_'.$date;
    move_uploaded_file($rename_file, "$destination");
}

【问题讨论】:

  • 由于您没有上传任何文件,请尝试使用rename()函数。

标签: php file


【解决方案1】:

由于您没有上传任何文件,请尝试使用rename() 函数。

$Ignore = array(".","..","Thumbs.db");
$OriginalFileRoot = "files";
$OriginalFiles = scandir($OriginalFileRoot);
$DestinationRoot = "backups";
# Check to see if "backups" exists
if(!is_dir($DestinationRoot)){
    mkdir($DestinationRoot,0777,true);
}
$Date = date('Y-m-d');
foreach($OriginalFiles as $OriginalFile){
    if(!in_array($OriginalFile,$Ignore)){
        $FileExt = pathinfo($OriginalFileRoot."\\".$OriginalFile, PATHINFO_EXTENSION); // Get the file extension
        $Filename = basename($OriginalFile, ".".$FileExt); // Get the filename
        $DestinationFile = $DestinationRoot."\\".$Filename.'_'.$Date.".".$FileExt; // Create the destination filename 
        rename($OriginalFileRoot."\\".$OriginalFile, $DestinationFile); // rename the file            
    }
}

【讨论】:

  • 复杂的代码,但您根据我对我的回答的编辑获得了我的投票 :) 谢谢!
  • @Dekel 是的,有点复杂,但认为额外的变量值得一提:)
  • @JustBaron 我已经使用了你的代码,但我收到错误“没有这样的文件或目录”
  • 代码对我有用。我建议调试以查看哪个文件/目录不存在。我会更新我的答案以帮助您检查这一点。
  • 我收到错误 PHP 警告:rename(files/\abc.csv,backups/\abc_2017-08-11.csv) : No such file or directory 3 次
【解决方案2】:

函数move_uploaded_file与上传文件相关,与其他无关。

要在文件系统中移动文件,您应该使用rename 函数:

$files = scandir('files');
$destination = 'backups/';
$date = date('Y-m-d');
foreach($files as $file){
    if (!is_file($file)) {
        continue;
    }
    $rename_file = $destination.$file.'_'.$date;
    rename($file, $rename_file);
}

【讨论】:

  • 我需要这个文件移动到备份文件夹,怎么可能
  • 我错过了那里的$destination,请检查基于@JustBaron 编辑我的答案的更新。
  • @JustBaron 源文件目录是'files/',这样对吗?但是当我运行此脚本时在备份文件夹中找不到文件并且没有错误显示
  • @Shreya 检查我的答案
猜你喜欢
  • 2013-12-08
  • 2010-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-12
  • 1970-01-01
相关资源
最近更新 更多