我想移動文件內上傳/養老/#SOME_VARIABLE_NUMBER#/#SOME_CONSTANT_NUMBER#/PHP:如何重命名父目錄可變的目錄?
這裏是我的代碼:
// move pension statements
// located at uploads/pension/%COMPANY_ID%/%USER_ID%/%HASH%
// so just move the %USER_ID% folder to the new company
$oldPensionDir = "uploads/pension/" . $demo_user[Users::companyID] . "/" . $demo_user[Users::userID] . "/";
$newPensionDir = "uploads/pension/" . $newCompanyID . "/" . $demo_user[Users::userID] . "/";
// see if the user had any files, and if so, move them
if(file_exists($oldPensionDir)) {
// if it doesnt exist, make it
if(!file_exists($newPensionDir))
mkdir($newPensionDir);
// move the folder
rename($oldPensionDir, $newPensionDir);
}
但是......當我需要做的目錄與在「MKDIR」功能,我得到:
mkdir() [<a href='function.mkdir'>function.mkdir</a>]: No such file or directory
好吧,也許MKDIR將無法正常工作,但對於重命名?也許這將使目錄,如果它不存在......不!
rename(uploads/pension/1001/783/,uploads/pension/1000/783/) [<a href='function.rename'>function.rename</a>]: The system cannot find the path specified. (code: 3)
所以,有兩個錯誤。我很確定,如果重命名的作品,我甚至不需要mkdir,但誰知道...誰能告訴我爲什麼這些錯誤,以及如何解決它們?
謝謝!
編輯:我已經修改了代碼,現在我唯一的問題是一個接入問題......下面
rename(uploads/pension/1000_783/,uploads/pension/1001/783/) [<a href='function.rename'>function.rename</a>]: Access is denied. (code: 5)
是新代碼。基本上,我重命名它三次(因爲它必須通過文件夾移動,但最後一步是導致'訪問被拒絕'的錯誤。奇怪的是,即使當我刪除新的目錄,它使一個新的,我其設置有燙髮0777 !!!什麼是錯與此
// move pension and total reward statements
// located at uploads/pension|total_rewards/%COMPANY_ID%/%USER_ID%/%HASH%
// so just move the %USER_ID% folder to the new company
$oldPensionDir = "uploads/pension/" . $demo_user[Users::companyID] . "/" . $demo_user[Users::userID] . "/";
$tempPensionDir1 = "uploads/pension/" . $demo_user[Users::companyID] . "/" . $demo_user[Users::companyID] . "_" . $demo_user[Users::userID] . "/";
$tempPensionDir2 = "uploads/pension/" . $demo_user[Users::companyID] . "_" . $demo_user[Users::userID] . "/";
$newPensionDir = "uploads/pension/" . $newCompanyID . "/" . $demo_user[Users::userID] . "/";
// see if the user had any files, and if so, move them
if(file_exists($oldPensionDir)) {
// if it doesnt exist, make it
if(!file_exists($newPensionDir))
mkdir($newPensionDir, 0777, true);
// move the folder
// first, move it to the pension directory
rename($oldPensionDir, $tempPensionDir1);
rename($tempPensionDir1, $tempPensionDir2);
// second, move it into the new directory
rename($tempPensionDir2, $newPensionDir);
}
的文件路徑是相對的任何父目錄。代碼是否在正確的工作目錄中執行? – 2010-06-01 15:58:47