php - is_dir() 在传递子文件夹时返回 FALSE

标签 php

根据 php 手册,如果传递引用文件夹的字符串,is_dir() 将返回 true。 它返回 false - 尽管传递了一组有效的文件夹名称 - 这可能很简单,但我因为没有找到它而自责。

这是代码:

define('TEST_SUBFOLDERS_FILES_PATH', 'C:/xampp/htdocs/theProj/mainSubdir/');

$currentFolder = ' ';
$rootOfmainSubdir = TEST_SUBFOLDERS_FILES_PATH';
$theArrayOfDirsAndFilesInmainSubdir;

// fill an array that contains all files and folders under the /mainSubdir folder
// using php's 'scandir()'
if( ($theArrayOfDirsAndFilesInmainSubdir = scandir($rootOfmainSubdir )) != FALSE )
{
  $numArrayEntries = count($theArrayOfDirsAndFilesInmainSubdir);
  echo "<br><br>The number of folders/files found is:  " . $numArrayEntries;


  // now do the triage on subfolders under /mainSubdir  versus files
  for($i = 0; $i < $numArrayEntries; $i++)
  {
    echo "<br><br>Current array element is:  " 
            . $theArrayOfDirsAndFilesInmainSubdir[$i]
            . "  and is_dir() on this element returns --> "
            . var_dump( is_dir($theArrayOfDirsAndFilesInmainSubdir[$i]) );  
    // rest of code

以下是我在几乎所有文件夹的输出中看到的内容:

Current array element is: testFolderN and is_dir() on this element returns -->

boolean false

或者我看到:

Current array element is: . and is_dir() on this element returns -->

boolean true

并且:

Current array element is: .. and is_dir() on this element returns -->

boolean true

我在这里错过了一些非常愚蠢的东西,但是天啊。看来 is_dir() 仅对当前文件夹“.”正确返回 TRUE。和父文件夹“..”

如果我在使用 is_dir() 时遗漏了细微差别,我就看不到它。

感谢帮助——如果我能让 is_dir() 不仅对“.”返回 TRUE,那么我在代码中要做的就是在 TEST_SUBFOLDERS_FILES_PATH 下列出当前子文件夹的列表。和“..”,还有其他“testFolderN”子文件夹。

顺便说一句——目录下一共有5个子文件夹,1个文件,所以上面的计数显示是:

The number of folders/files found is: 8

最佳答案

您扫描$rootOfmainSubdir,但在当前目录中测试is_dir()。您可以在检查之前添加根目录和目录分隔符,或者在其中添加 chdir() 。请注意,您当前的目录还有 ... 条目。

关于php - is_dir() 在传递子文件夹时返回 FALSE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8370237/

相关文章:

php - 获取 mySQL date_format 以在 PHP 中显示

php - 如何将 include(php 文件) 放入变量?

javascript - 根据mysql表中的值更改行的字体颜色

php - 显示内部连接表中的名称?

php - 插入 foreach 循环

javascript - 提交时如何使单选字段确定下一页

javascript - 如何以编程方式在 php 中发送帖子数据?

php - 为什么 PDO 的 Oracle 驱动程序没有实现 lastInsertId()?

php - 以小背景显示文本

php - SQL PHP 语句中的解析错误