【问题标题】:how to delete folder in laravel with prefix如何在laravel中删除带有前缀的文件夹
【发布时间】:2023-03-26 00:26:01
【问题描述】:

我使用 laravel 5.4,我想删除文件夹。如何使用文件外观删除带有前缀的文件夹?

例如这是我的文件夹和代码:

$folder = public_path().'/images/carimages/something_folder1';


File::deleteDirectory($file);

现在我想这样做:删除*_folder1(所有以_folder1字结尾的文件夹)

------- 解决方案:

$dir = public_path().'/images/carimages/*_folder1';
$dir = glob($dir);
$dir = implode(" ",$dir);
File::deleteDirectory($dir);

【问题讨论】:

    标签: laravel laravel-5 laravel-5.4 laravel-filesystem


    【解决方案1】:

    例如可以通过PHP函数rmdir删除文件夹

    if (!is_dir('examples')) {
        mkdir('examples');
    }
    
    rmdir('examples');
    

    【讨论】:

      【解决方案2】:

      您可以使用exec() 方法

      首先,获取你要查找的所有目录

      $files_directory = [];
      $file_search_directory = public_path()./images/carimages/';
      $file_search_results = exec('find '. $file_search_directory . ' -type d -name "*_folder"', $files_directory);
      

      然后你可以遍历文件目录并删除它们

      foreach ($files_directory as $file_path) {
          File::deleteDirectory($file_path);
      }
      

      【讨论】:

      • 我可以这样做:array_map('rmdir', glob('*_folder1')); .这样好吗?
      • 好吧,如果这对你有用,很好。实现目标的方法总是不止一种!你的方法看起来又短又精确!考虑将其添加为答案
      • 谢谢。文件外观和 php rmdir 函数在性能或安全方面有什么不同吗??
      • 我不认为有任何区别,因为您可以在这里查看代码 github.com/laravel/framework/blob/5.5/src/Illuminate/Filesystem/… 它在内部使用 unlinkrmdir
      【解决方案3】:

      试试这个

       $files = File::directories(base_path('/images/carimages'));
          foreach($files as $file) {
              if (strpos($file, '_folder1') !== false) {
                  File::deleteDirectory($file);
              }
          }
      

      【讨论】:

        猜你喜欢
        • 2020-11-24
        • 1970-01-01
        • 1970-01-01
        • 2018-07-21
        • 2017-09-16
        • 1970-01-01
        • 1970-01-01
        • 2014-03-24
        • 1970-01-01
        相关资源
        最近更新 更多