我希望我的脚本能够放置文件夹中的所有文件,但不能放在文件夹中的文件夹周围,这是我的代码:
function listFolderFiles($dir){
$folder = scandir($dir);
echo "<folder name='".$dir."'>";
foreach($folder as $file){
if($file != '.' && $file != '..'){
if(is_dir($dir.'/'.$file)) {
listFolderFiles($dir.'/'.$file);
}
else{
echo '<file>'.$file.'</file>';
}
}
}
echo "</folder>";
}
我想要这样的输出:
<folder name='appdata'>
<folder name='appdata/assets'>
<files>
<file>New Text Document - Copy (2) - Copy.txt</file>
<file>New Text Document - Copy (2).txt</file>
<file>New Text Document - Copy.txt</file>
<file>New Text Document.txt</file>
</files>
<folder name='appdata/assets/audio'>
<folder name='appdata/assets/audio/frl'>
<files>
<file>New Microsoft Excel Worksheet - Copy (2).xlsx</file>
<file>New Microsoft Excel Worksheet - Copy - Copy.xlsx</file>
<file>New Microsoft Excel Worksheet - Copy.xlsx</file>
<file>New Microsoft Excel Worksheet.xlsx</file>
</files>
</folder>
</folder>
</folder>
</folder>
提前致谢
答案 0 :(得分:0)
尝试以下方法。它只是一种可能的解决方案,但您也可以在开头获取所有文件夹:
function listFolderFiles($dir){
$folder = scandir($dir);
echo "<folder name='".$dir."'>";
$files = array();
foreach($folder as $file){
if($file != '.' && $file != '..'){
if(is_dir($dir.'/'.$file)) {
listFolderFiles($dir.'/'.$file);
}
else{
$files[] = $file;
}
}
if (!empty($files)) {
echo "<files>";
foreach ($files as $_file) {
echo '<file>'.$_file.'</file>';
}
echo "</files>";
}
}
echo "</folder>";
}