如何在 PHP 中检查文件是不是存在于目录中?
Posted
技术标签:
【中文标题】如何在 PHP 中检查文件是不是存在于目录中?【英文标题】:How to check whether a file is present in a directory or not in PHP?如何在 PHP 中检查文件是否存在于目录中? 【发布时间】:2014-01-11 09:44:31 【问题描述】:以下是我的代码 sn-p:
<?php
$filename = $test_data['test_name'].".pdf";
//I want to check whether the above file with the same extension(.pdf) is existing in the directory having name say "ABC" is present or not
?>
如果这样的文件在“ABC”目录中不存在,那么它应该创建相同的文件。
如果该文件存在于目录“ABC”中,那么它应该被删除。
我尝试使用file_exists()
,但不明白如何将它用于特定目录。
有人可以在这方面指导我吗?任何形式的帮助将不胜感激。
【问题讨论】:
这个 ABC 目录在哪里?它是在包含 PDF 文件的目录中还是在它之外?您能否在问题中包含目录树? 在file_exists()
中,您可能必须传递完整路径,而不仅仅是文件名。
【参考方案1】:
试试这个,希望这会有所帮助。
$file_path = $_SERVER['DOCUMENT_ROOT']."/MyFolder/";
$file_name = "abc.pdf";
if( file_exists( $file_path.$file_name ))
echo "File Exists";
else
echo "File not found!!!";
【讨论】:
值得一提的是,您应该使用DIRECTORY_SEPARATOR
。因为在 Linux 中使用“\”会失败,而在 Windows 中使用“/”会失败。
是的,但这可以作为所提问题的快速解决方案。编码员肯定会尝试变体【参考方案2】:
file_exists 使用绝对路径来获取文件,所以像这样使用它:
$directorypath = dirname(__FILE__) . '/to/your/directory/';
$filename = $directorypath . $test_data['test_name'].".pdf";
if (file_exists($filename))
echo "The file $filename exists";
//delete file
unlink('$filename');
else
echo "The file $filename does not exist";
检查这个:http://fr.php.net/manual/en/function.file-exists.php
【讨论】:
他询问该文件是否在名为 ABC 的目录中【参考方案3】:使用 php 函数 unlink()(删除文件)和 file_exists()(检查文件是否存在)的组合。
Like
$filename = "./path to file/".$test_data['test_name'].".pdf";
if (file_exists($filename))
echo "The file $filename exists";
if(unlink ($filename))
echo "deleted";
else
echo "not delete";
else
$file = fopen($filename,"w");
fwrite($file,"your content");
fclose($file);
【讨论】:
【参考方案4】:函数scandir非常有用。
file_flag=0;
$input_file=scandir($full_path);
foreach ($input_file as $input_name)
if($input_name==$ABC)
file_flag=1;
else
file_flag=0;
if (file_flag==1)
echo "File exists!";
else
echo "File not found!";
【讨论】:
从不扫描以检测单个文件的存在。 file_exists() 将是最佳实践。 scandir() 需要最大的努力,应该首选目录迭代器 ( FilesystemIterator ) 或提取 ( glob() )。以上是关于如何在 PHP 中检查文件是不是存在于目录中?的主要内容,如果未能解决你的问题,请参考以下文章