$field) { $aryTmp[$field] = $aryDir[$field]; } $line = implode(',',$aryTmp); fwrite($h, $line."\n"); fclose($h); return true; } public function createFile($aryFile) { $dbFile = 'file.db'; $aryField = array ('id', 'name', 'minetype', 'size', 'parentID'); $aryTmp = array(); $h = fopen($dbFile, 'a+'); $line = ''; foreach ($aryField as $key => $field) { $aryTmp[$field] = $aryFile[$field]; } $line = implode(',',$aryTmp); fwrite($line."\n", $h); fclose($h); return true; } public function deleteDir ($dirID, $delAllChild = FALSE) { $dbFile = 'directory.db'; $dirList = $this->getAllDirectory(); $lineNumber = 0; foreach ($dirList as $key => $dir) { if ($dir[0] == $dirID) { $lineNumber = $key; } } //$aryChildDir = if ($delAllChild) { } unset($dirList[$lineNumber]); return $this->writeDB ($dbFile, $dirList); } public function deleteFile ($fileID) { $dbFile = 'file.db'; $fileList = $this->getAllFile(); $lineNumber = 0; foreach ($fileList as $key => $file) { if ($dir[0] == $dirID) { $lineNumber = $key; } } unset($fileList[$lineNumber]); return $this->writeDB ($dbFile, $fileList); } public function getAllFileChild ($dirID) { $fileList = $this->getAllFile(); $aryChild = array(); $aryDirChild = $this->getAllDirChild($dirID); foreach ($aryDirChild as $key => $child) { } } public function getAllDirChild ($dirID) { $dirList = $this->getAllDirectory(); $aryChild = array(); foreach ($dirList as $key => $dir) { if ($dir['parentID'] == $dirID) { $aryChild[$dir['id']] = $dir; $aryChild[$dir['id']]['child'] = $this->getAllDirChild($dir['id']); if (count($aryChild[$dir['id']]['child']) == 0) unset($aryChild[$dir['id']]['child']); } } return $aryChild; } private function writeDB ($file, $aryDataSet, $flag = '') { $flag = ($flag == 'append') ? 'a' : 'w'; if (file_exists($file) && count($aryDataSet) > 0) { $h = fopen ($file, $flag); foreach ($aryDataSet as $key => $aryTmp) { $line = implode(',',$aryTmp); fwrite($h, $line."\n"); } fclose ($h); return true; }else { return false; } } public function getMaxID($isDir) { $list = $isDir = true ? $this->getAllDirectory() : $this->getAllFile(); $maxID = 0; foreach ($list as $key => $e) { if ($e['id'] > $maxID) $maxID = $e['id']; } return $maxID; } public function rename ($id, $newName, $type = 'directory') { if (!$newName || !$id) return FALSE; $aryObj = $type == 'directory' ? $this->getAllDirectory() : $this->getAllFile(); $dbFile = $type == 'directory' ? $dbFile = 'directory.db' : $dbFile = 'file.db'; if (count($aryObj) > 0) { foreach ($aryObj as $key => $obj) { if ($obj['id'] == $id) break; } $aryObj[$key]['name'] = $newName; return $this->writeDB($dbFile, $aryObj); } return FALSE; } }