仅获取目录中的文件夹名称,跳过点并忽略某些文件夹
Get only folder names in a directory, skipping dots and ignoring certain folders
我只需要获取目录中的文件夹名称。到目前为止,我发现 DirectoryIterator 很有用。但是我没有得到所需的文件夹名称。
$dir = new DirectoryIterator(dirname($directory));
foreach ($dir as $fileinfo) {
if (!$fileinfo->isDot()) {
var_dump($fileinfo->getFilename());
if ($fileinfo->isDir()) {
//echo $fileinfo->getFilename() . '<br>';
}
}
}
请参阅:我也想跳过点 (.) 和 (..)
同时能够忽略我选择的文件夹。
DirectoryIterator
让您获取文件名相对于目录的亲属关系,而不是绝对的,既不是相对于您进程的当前目录。连接 $directory
和 $fileinfo->getFileName()
以获得正确的可用路径。
解决方法如下:
$path = 'PATH';
if ($handle = opendir($path)) {
while (false !== ($file = readdir($handle))) {
//skips dots
if ('.' === $file) continue;
if ('..' === $file) continue;
//ignore folders
if ('FOLDER_TO_IGNORE' === $file) continue;
//check if filename is a folder
if (is_dir($file)){
//DO SOMETHING WITH FOLDER ($file)
}
}
closedir($handle);
}
我只需要获取目录中的文件夹名称。到目前为止,我发现 DirectoryIterator 很有用。但是我没有得到所需的文件夹名称。
$dir = new DirectoryIterator(dirname($directory));
foreach ($dir as $fileinfo) {
if (!$fileinfo->isDot()) {
var_dump($fileinfo->getFilename());
if ($fileinfo->isDir()) {
//echo $fileinfo->getFilename() . '<br>';
}
}
}
请参阅:我也想跳过点 (.) 和 (..) 同时能够忽略我选择的文件夹。
DirectoryIterator
让您获取文件名相对于目录的亲属关系,而不是绝对的,既不是相对于您进程的当前目录。连接 $directory
和 $fileinfo->getFileName()
以获得正确的可用路径。
解决方法如下:
$path = 'PATH';
if ($handle = opendir($path)) {
while (false !== ($file = readdir($handle))) {
//skips dots
if ('.' === $file) continue;
if ('..' === $file) continue;
//ignore folders
if ('FOLDER_TO_IGNORE' === $file) continue;
//check if filename is a folder
if (is_dir($file)){
//DO SOMETHING WITH FOLDER ($file)
}
}
closedir($handle);
}