检查PHP中是否存在目录
我知道,我知道,这听起来很简单。但是我似乎在网上找不到正确的答案 我找到的解决方案之一是使用检查PHP中是否存在目录,php,file-io,Php,File Io,我知道,我知道,这听起来很简单。但是我似乎在网上找不到正确的答案 我找到的解决方案之一是使用is_dir if(is_dir($dir)) echo 'directory exists'; else echo 'drectory not exist'; 但是这是错误的——这个函数所做的只是检查$dir是否是一个目录,它不检查目录是否存在。换言之,如果我提出: $rootDir = "C:\\Documents and Settings\\test\\My Documents\\Imag
is_dir
if(is_dir($dir))
echo 'directory exists';
else
echo 'drectory not exist';
但是这是错误的——这个函数所做的只是检查$dir
是否是一个目录,它不检查目录是否存在。换言之,如果我提出:
$rootDir = "C:\\Documents and Settings\\test\\My Documents\\Image Directory\\Me Dog\\";
然后,该函数将返回true,即使您在web服务器上找不到这样的目录
有什么想法吗?应该是正确的。从
is_dir()
文档:
如果文件名存在,则返回TRUE
并且是一个目录,FALSE
否则
好吧,不管怎样,如果它不尝试这个:
if(file_exists($dir) && is_dir($dir))
if(is_dir($dir) && is_writeable($dir))
{
// ...
}
顺便说一句,这些函数的结果缓存在statcache中。用于清理该缓存。在is_dir()同意路径(可以)是目录后,您可能会希望使用该路径 如果opendir()返回的资源有效,您就知道您有一个目录,并且已经有了一个句柄来读取它 只要确保在返回有效句柄的情况下调用closedir() 编辑: 这个答案假设您将以任何方式打开目录。如果您只需要确保路径正确/有效,则file_exists()更便宜。您可以尝试以下方法:
if(file_exists($dir) && is_dir($dir))
if(is_dir($dir) && is_writeable($dir))
{
// ...
}
检查文件或目录是否存在
这不是问题的解决方案,因为不可写目录也是目录。这是PHP5.2中报告的错误,尽管我再也找不到错误报告的链接。