当前位置: 首页 > 知识库问答 >
问题:

文件移动到另一个文件夹laravel

陈俊誉
2023-03-14

我需要过去7天的存储日志来移动一个新文件夹。但是,我不能移动它们,并得到了这个错误。

重命名(/var/www/html/eMarketing/storage/logs/old-log-2020-02-27,/var/www/html/eMarketing/storage/logs/laravel-2020-02-27.log):不是目录

我的密码在这里

public function logs() 
{
  $today = \Carbon\Carbon::today()->format('Y-m-d');
  $days  = \Carbon\Carbon::today()->subDays(7)->format('Y-m-d');

  $newDirectoryPath = storage_path('logs/old-log-'.$days);
  if (!\File::isDirectory($newDirectoryPath)) {
      \File::makeDirectory($newDirectoryPath);
  }

  $path = storage_path('logs/');
  $allFiles = \File::allFiles($path);

  foreach($allFiles as $files) {
      $file = pathinfo($files);
      $logDay = str_replace('laravel-','', $file['filename']);  

      if ($logDay >= $days && $logDay < $today) {
          \File::move($newDirectoryPath, $path.$file['basename']);
      }

   }
}

共有1个答案

何章横
2023-03-14

问题是,您没有要移动的文件。

$newDirectoryPath = storage_path('logs/old-log-' . $days);

if (!\File::isDirectory($newDirectoryPath)) {
    \File::makeDirectory($newDirectoryPath);
}

mobile()方法可用于重命名现有文件或将其移动到新位置。但是$newDirectoryPath是一个文件夹而不是一个文件。

你需要改变:

\File::move(
    $path . $file['basename'],                  // old file
    $newDirectoryPath . '/' . $file['basename'] // new file
);
public function logs()
{
    $today = \Carbon\Carbon::today()->format('Y-m-d');
    $days  = \Carbon\Carbon::today()->subDays(7)->format('Y-m-d');

    $newDirectoryPath = storage_path('logs/old-log-' . $days);
    if (!\File::isDirectory($newDirectoryPath)) {
        \File::makeDirectory($newDirectoryPath);
    }

    $path     = storage_path('logs/');
    $allFiles = \File::allFiles($path);

    foreach ($allFiles as $files) {
        $file   = pathinfo($files);
        $logDay = str_replace('laravel-', '', $file['filename']);

        if ($logDay >= $days && $logDay < $today) {
            \File::move($path . $file['basename'], $newDirectoryPath . '/' . $file['basename']);
        }

    }
}
 类似资料:
  • 我正在尝试创建一个PowerShell脚本,当我的电脑打开时,我可以每天早上运行该脚本,以移动我最近下载的所有类型。x从文件夹y到目标z。 当我运行该代码时,我得到这个错误:

  • 我试图寻找'jpg,jpeg,png'文件在我的USB驱动器,并试图将它们一个接一个地移动到一个新的文件夹。请让我知道这里有什么问题。 错误:- 目标目录E\Mac\MovedPics不存在语音指令2。zip:E:\Mac目的地目录E\Mac\MovedPics不存在usbpicsdata。txt:E:\Mac REGEXP匹配:-E:\Mac\4。jpg回溯(最近一次调用last):文件“C:\

  • aws s3api copy-object-copy-source bucket-1-key*.txt-bucket bucket-1/folder/ 我在bucket的根目录中有许多txt文件,我想将它们移动到同一个bucket中的一个文件夹中。 太感谢了。

  • 问题内容: 情况: 我正在做一个自动化,我必须从一组文件中仅下载CSV文件。现在我只想将CSV文件从一个文件夹移动到另一个文件夹。 题: 您能为我提供代码,以便在文件移动后立即从源文件夹中删除文件吗? 到目前为止,这是我的代码: 编辑:但是我仍然面临一个问题。它会立即下载所有文件,然后删除。但是我的要求是这样的- 它应该下载第一个文件->将下载的文件移到另一个文件夹中->从下载文件夹中删除第一个下

  • 我得到以下错误: 线程“main”java.lang.IllegalArgumentException:错误的fs:hdfs:/user/o/datasets/data.txt,应为:file:/// 也是如此,因为它们用于在文件系统之间传输文件,而不是在文件系统内传输文件。我还尝试了,但根本没有任何作用(没有错误或任何东西)。

  • 我的应用程序中有一个文件上传模块。我可以在这里上传img/upload/{container\u id}/file\u name\中的文件。 {container_id}将取决于用户将使用的文件夹。 我遇到的问题是当他们试图将一条记录编辑到另一个文件夹时。他们上载的文件仍保留在旧文件夹中。 我还想将文件移动到用户定义的新文件夹中。 我这里有我的代码,我被困在移动文件中了。