如果目录不存在,我创建目录并保存文件,如果目录存在,我也可以保存文件。应该一次创建一个文件,而不是与下面的代码同时创建。如果现在创建了第一个文件,则只应在调用该函数时创建下一个文件。文件命名为R1,R2 .... Rn。我怎样才能实现这一点,这将同时创造所有这些
$fileName1=$fileName1='somedir/'.$thedir.'/'.$thefile.'_R1.xlsx';
...
if (!dir($dirName))
{
mkdir('somedir/' . thedir, 0777);
$objWriter->save($fileName);
}
if (dir($dirName) && (!file_exists($fileName)))
{
$objWriter->save($fileName);
}
if (dir($dirName) && file_exists($fileName))
{
$objWriter->save('somedir/' . $thedir . '/' . $thefile . '_R1.xlsx');
}
if (dir($dirName) && file_exists($fileName1))
{
$objWriter->save('somedir/' . $thedir . '/' . $thefile . '_R2.xlsx');
}
...
答案 0 :(得分:0)
if (!is_dir($dir))
mkdir($dir, 0777);
$suffixes = array('_R1.xlsx', '_R2.xlsx');
foreach($suffixes as $suffix) {
$fileName = $dir.'/' . $thefile . $suffix;
if (! file_exists($fileName)) {
$objWriter->save($fileName);
break;
}
}
您必须添加错误处理,并注意只检查文件可能会产生并发问题(两个进程同时尝试查看该文件不存在并尝试创建它)。
答案 1 :(得分:0)
您需要使用[is_dir][1]
功能检查文件夹是否存在。
查看此代码 - 您的一些返工
$fileName1=$fileName1='somedir/'.$thedir.'/'.$thefile.'_R1.xlsx';
....
// Directory does not exist - create it
if (!is_dir($dirName))
{
mkdir('somedir/' . thedir, 0777);
$objWriter->save($fileName);
}
// Directory exists
if (is_dir($dirName))
{
// File does not exist - create it
if (!file_exists($fileName)))
{
$objWriter->save($fileName);
}
// Check one more time if the file exists
if (file_exists($fileName)))
{
$objWriter->save('somedir/' . $thedir . '/' . $thefile . '_R1.xlsx');
$objWriter->save('somedir/' . $thedir . '/' . $thefile . '_R2.xlsx');
}
}
.......