예제 #1
0
 /**
  * tarアーカイブを解凍する.
  *
  * @param string $path アーカイブパス
  * @return string Archive_Tar::extractModify()のエラー
  */
 function unpackFile($path)
 {
     // 圧縮フラグTRUEはgzip解凍をおこなう
     $tar = new Archive_Tar($path, true);
     $dir = dirname($path);
     $file_name = basename($path);
     // 拡張子を切り取る
     $unpacking_name = preg_replace("/(\\.tar|\\.tar\\.gz)\$/", "", $file_name);
     // 指定されたフォルダ内に解凍する
     $tar->extractModify($dir . "/", $unpacking_name);
     GC_Utils_Ex::gfPrintLog("解凍:" . $dir . "/" . $file_name . "->" . $dir . "/" . $unpacking_name);
     // フォルダ削除
     SC_Utils::sfDelFile($dir . "/" . $unpacking_name);
     // 圧縮ファイル削除
     unlink($path);
 }
예제 #2
0
 function sfDelFile($dir)
 {
     if (file_exists($dir)) {
         $dh = opendir($dir);
         // フォルダ内のファイルを削除
         while ($file = readdir($dh)) {
             if ($file == "." or $file == "..") {
                 continue;
             }
             $del_file = $dir . "/" . $file;
             if (is_file($del_file)) {
                 $ret = unlink($dir . "/" . $file);
             } else {
                 if (is_dir($del_file)) {
                     $ret = SC_Utils::sfDelFile($del_file);
                 }
             }
             if (!$ret) {
                 return $ret;
             }
         }
         // 閉じる
         closedir($dh);
         // フォルダを削除
         return rmdir($dir);
     }
 }