如何在 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 中检查文件是不是存在于目录中?的主要内容,如果未能解决你的问题,请参考以下文章

Java中如何检查文件是不是存在于目录中

Perl LWP::Simple::getstore 如何检查文件是不是存在于目标目录中

如何检查用户是不是存在于数据库php中

如何检查文件是不是存在于android设备的特定文件夹中

如何检查目录中是不是存在扩展名为 .txt 的文件?

如何检查我的 ODBC 数据源是不是存在于 PHP 中?