php - 修复文件夹结构的脚本

时间:2011-08-04 14:18:33

标签: php io directory

我正在改变我在以下网站后端保存文件的方式:

uploads/item/x/subitem/y/document.pdf

其中x和y是整数id,将其更改为:

uploads/item/x/subitem/y/report/document.pdf

我还需要更改当前文件夹目录,这是超过1000条记录。有没有一种很好的方法来解决这个结构在PHP中没有寻址嵌套循环中的每个文件夹,我只需要在文档之前添加另一个文件夹。

修改

这是我试图找到的命令!

foreach(glob('uploads/item/*/subitem/*/*') as $filePath)

感谢帮助人员。

3 个答案:

答案 0 :(得分:0)

您是否只能在report/下创建文件夹y/,然后将y/中的所有文件移至report/?这根本不需要PHP。

编辑:我的bash非常生疏,因此这里可能存在很多语法错误。但这是基本的想法:

for x in /fullpath/uploads/item/*
do
    for y in uploads/item/$x/subitem/*
    do
        cd /fullpath/uploads/item/$x/subitem/$y
        mkdir report/
        mv * report/
    done
done

答案 1 :(得分:0)

你试过php重命名:

rename("uploads/item/x/subitem/y","uploads/item/x/subitem/y/report");

答案 2 :(得分:0)

// Change the current directory to the folder containing all your data
chdir('uploads/item/x/subitem/y');

// Attempt to create the report directory if it does not already exist
if ((file_exists('report') && is_dir('report')) || mkdir('report'))
{
    // Move every PDF file in the current directory
    foreach (glob('*.pdf') as $File)
    {
        rename($File, 'report/' . $File);
    }
}
else
{
    echo 'ERROR! Directory could not be created.';
}