我希望我的脚本在文件夹中放置所有文件,但不是在文件夹中的文件夹中,这是我拥有ATM的代码:
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>
预先感谢
尝试以下内容。这只是一个可能的解决方案,但是您还将在开始时获取所有文件夹:
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>";
}