2011-08-04 26 views
2

,我改变我的方式保存在我的网站的后端文件:PHP - 脚本来修复文件夹结构

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) 

感谢您的帮助球员。

回答

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 
+0

没有循环是必要的。 – tskuzzy

+0

@tskuzzy如果我理解正确,x和y是数字。 – zaf

+0

当x和y是随机整数时,你不能只用cd“uploads/item/x/subitem/y /” – user877756

0

您是否尝试过PHP的重命名:

rename("uploads/item/x/subitem/y","uploads/item/x/subitem/y/report"); 
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.'; 
} 
相关问题