首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅当文件存在时创建目录(ftp_mkdir)

问仅当文件存在时创建目录(ftp_mkdir)
EN

Stack Overflow用户
提问于 2013-04-19 22:40:57
回答 2查看 951关注 0票数 0

我目前有一个连接到ftp目录的程序,如果它找到csv文件,运行一个脚本,然后脚本在文件上运行后,它会创建一个带有日期的备份文件夹,并将csv文件移动到ftp目录中新创建的备份文件夹中。

但是,如果根目录中没有csv文件,我不希望创建备份文件夹,因为没有要移动的文件。我知道解决方案可能真的很简单,但我似乎想不出来!

代码语言:javascript
复制
 logMessage("Creating backups");
    $ftp_connection = @ftp_connect($ftp_url, $ftp_port, 6000);
    if(!@ftp_login($ftp_connection, $ftp_username, $ftp_password )) {
       logMessage("Could not connect to FTP: [$ftp_url], with Username: [$ftp_username], and Password: [$ftp_password]");
        die();
    }

$date = date('Y_m_d_(His)');

$newBackup = $ftp_root."/".$ftp_backup."backup_$date";

if (ftp_mkdir($ftp_connection, $newBackup)) {
    logMessage ("Successfully created [$newBackup\n]");

    foreach($filesToProcess as $file){
        $pathData = pathinfo($file);      
        if(isset($pathData['extension']) && $pathData['extension'] == 'csv'){

            if(!@ftp_rename($ftp_connection,
                    $ftp_root.'/'.$file,
                    $newBackup."/".$file)
            ){
                logMessage("Unable to move file: $file")
            }
        }
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-19 22:45:28

您已经使用了foreach($filesToProcess作为$file),所以在$filesToProcess中它是一个文件数组。您可以使用,count($filesToProcess)首先计算文件的数量,然后使用count>0执行代码。

票数 2
EN

Stack Overflow用户

发布于 2013-04-19 22:47:43

代码语言:javascript
复制
// $csv = your checks for string ending to .csv
$ftp_files = ftp_nlist($ftp_connection, ".");
foreach ($ftp_files = $files) {
   if ($files = $csv) {
     // makedir

在非常基本的语法中可能会有类似这样的东西。ftp_nlist返回一个包含特定目录中所有文件的数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16107227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档