{Is dir} 和 mkdir 在不同的文件夹中

{Is dir} and mkdir in separate folders

我需要检查一个文件夹是否存在于另一个文件夹中。如果没有,则会创建一个新文件夹。我似乎无法让它工作。请参阅下面的代码。

注:我用的是TCPDF。

// Create filename
$filnamnet = $id.'_'.$datum.'_'.$fornamn.'_'.$efternamn.'.pdf';


// Folder in iup_pdf
$mapparna_dir = 'iup_pdf/'.$id.'_'.$fornamn.'_'.$efternamn.'_'.$personnummer.'';

// Check if folder exist in iup_pdf
if(!is_dir($mapparna_dir) ) { 
   mkdir('iup_pdf/'.$id.'_'.$fornamn.'_'.$efternamn.'_'.$personnummer); 
}

$pdf->Output(__DIR__ . '/iup_pdf/'.$id.'_'.$fornamn.'_'.$efternamn.'_'.$personnummer.'/'.$filnamnet.'', 'F');

错误状态:TCPDF 错误:无法创建输出文件

您可能会发现这个有用。

function RecursiveMkdir( $path=NULL, $perm=0644 ) {
    if( !file_exists( $path ) ) {
        RecursiveMkdir( dirname( $path ) );
        mkdir( $path, $perm, TRUE );
        clearstatcache();
    }
}

我倾向于发现完整路径效果最好 - 即:$_SERVER['DOCUMENT_ROOT'].'/path/elements/to/folder' 等而不是相对路径。此外,is_dir() 确定文件是否为目录 - 可能在函数中使用 file_exists。

if( !file_exists( $mapparna_dir ) ) RecursiveMKdir( $mapparna_dir );