public function Test_is_dir()
 {
     $path = 'invalid path';
     $this->assertFalse(AkFtp::is_dir($path));
     
     $path = 'this_is_a_file.txt';
     Ak::file_put_contents('this_is_a_file.txt', '');
     
     $this->assertFalse(AkFtp::is_dir($path));
     
     AkFtp::make_dir('tmp_test_dir');
     Ak::file_put_contents('tmp_test_dir/file_inside.txt', '');
     
     $path = 'tmp_test_dir/file_inside.txt';
     $this->assertFalse(AkFtp::is_dir($path));
     
     
     AkFtp::make_dir('real_dir/another/dir');
     
     $path = 'real_dir';
     $this->assertTrue(AkFtp::is_dir($path));
     
     $path = 'real_dir/another/dir';
     $this->assertTrue(AkFtp::is_dir($path));
     
     AkFtp::delete('real_dir');
     AkFtp::delete('this_is_a_file.txt');
     AkFtp::delete('tmp_test_dir');
 }
Beispiel #2
0
 function directory_delete($dir_name, $options = array())
 {
     $default_options = array('ftp' => defined('AK_DELETE_FILES_USING_FTP') && AK_DELETE_FILES_USING_FTP, 'base_path' => AK_BASE_DIR);
     $options = array_merge($default_options, $options);
     $sucess = true;
     $dir_name = Ak::_getRestrictedPath($dir_name, $options);
     if (empty($dir_name)) {
         return false;
     }
     if ($options['ftp']) {
         require_once AK_LIB_DIR . DS . 'AkFtp.php';
         return AkFtp::delete($dir_name);
     } else {
         $items = glob($options['base_path'] . DS . $dir_name . "/*");
         $hidden_items = glob($options['base_path'] . DS . $dir_name . "/.*");
         $fs_items = $items || $hidden_items ? array_merge((array) $items, (array) $hidden_items) : false;
         if ($fs_items) {
             $items_to_delete = array('directories' => array(), 'files' => array());
             foreach ($fs_items as $fs_item) {
                 if ($fs_item[strlen($fs_item) - 1] != '.') {
                     $items_to_delete[is_dir($fs_item) ? 'directories' : 'files'][] = $fs_item;
                 }
             }
             foreach ($items_to_delete['files'] as $file) {
                 Ak::file_delete($file, $options);
             }
             foreach ($items_to_delete['directories'] as $directory) {
                 $sucess = $sucess ? Ak::directory_delete($directory, $options) : $sucess;
             }
         }
         return $sucess ? @rmdir($options['base_path'] . DS . $dir_name) : $sucess;
     }
 }
Beispiel #3
0
 static function directory_delete($dir_name, $options = array())
 {
     $default_options = array('ftp' => defined('AK_DELETE_FILES_USING_FTP') && AK_DELETE_FILES_USING_FTP, 'base_path' => self::getDefaultBasePath($dir_name));
     $options = array_merge($default_options, $options);
     $sucess = true;
     $dir_name = self::getRestrictedPath($dir_name, $options);
     if (empty($dir_name)) {
         return false;
     }
     if ($options['ftp']) {
         return AkFtp::delete($dir_name);
     } else {
         $base_path = self::getNormalizedBasePath($options);
         $items = glob($base_path . $dir_name . "/*");
         $hidden_items = glob($base_path . $dir_name . "/.*");
         $fs_items = $items || $hidden_items ? array_merge((array) $items, (array) $hidden_items) : false;
         if ($fs_items) {
             $items_to_delete = array('directories' => array(), 'files' => array());
             foreach ($fs_items as $fs_item) {
                 if ($fs_item[strlen($fs_item) - 1] != '.') {
                     $items_to_delete[is_dir($fs_item) ? 'directories' : 'files'][] = $fs_item;
                 }
             }
             foreach ($items_to_delete['files'] as $file) {
                 self::file_delete($file, $options);
             }
             foreach ($items_to_delete['directories'] as $directory) {
                 $sucess = $sucess ? self::directory_delete($directory, $options) : $sucess;
             }
         }
         return $sucess ? is_dir($base_path . $dir_name) ? rmdir($base_path . $dir_name) : $sucess : $sucess;
     }
 }
Beispiel #4
0
 function directory_delete($dir_name, $options = array())
 {
     $default_options = array('ftp' => defined('AK_DELETE_FILES_USING_FTP') && AK_DELETE_FILES_USING_FTP, 'base_path' => AK_BASE_DIR);
     $options = array_merge($default_options, $options);
     $sucess = true;
     $dir_name = str_replace('..', '', rtrim($dir_name, '\\/. '));
     if ($dir_name == '') {
         return false;
     }
     $dir_name = trim(str_replace($options['base_path'], '', $dir_name), DS);
     if ($options['ftp']) {
         require_once AK_LIB_DIR . DS . 'AkFtp.php';
         $dir_name = trim(str_replace(array(DS, '//'), array('/', '/'), $dir_name), '/');
         return AkFtp::delete($dir_name);
     } else {
         if ($fs_items = glob($options['base_path'] . DS . $dir_name . "/*")) {
             $items_to_delete = array('directories' => array(), 'files' => array());
             foreach ($fs_items as $fs_item) {
                 $items_to_delete[is_dir($fs_item) ? 'directories' : 'files'][] = $fs_item;
             }
             foreach ($items_to_delete['files'] as $file) {
                 Ak::file_delete($file, $options);
             }
             foreach ($items_to_delete['directories'] as $directory) {
                 $sucess = $sucess ? Ak::directory_delete($directory, $options) : $sucess;
             }
             return $sucess;
         }
         return rmdir($options['base_path'] . DS . $dir_name);
     }
 }
 public function test_is_dir()
 {
     if (!RUN_FTP_TESTS) {
         return;
     }
     $path = 'invalid path';
     $this->assertFalse(AkFtp::is_dir($path));
     $path = 'this_is_a_file.txt';
     AkFileSystem::file_put_contents('this_is_a_file.txt', '');
     $this->assertFalse(AkFtp::is_dir($path));
     AkFtp::make_dir('tmp_test_dir');
     AkFileSystem::file_put_contents('tmp_test_dir/file_inside.txt', '');
     $path = 'tmp_test_dir/file_inside.txt';
     $this->assertFalse(AkFtp::is_dir($path));
     AkFtp::make_dir('real_dir/another/dir');
     $path = 'real_dir';
     $this->assertTrue(AkFtp::is_dir($path));
     $path = 'real_dir/another/dir';
     $this->assertTrue(AkFtp::is_dir($path));
     AkFtp::delete('real_dir');
     AkFtp::delete('this_is_a_file.txt');
     AkFtp::delete('tmp_test_dir');
     AkFtp::delete('cache');
 }