[英]Get the newest file from directory structure year/month/date/time
我將數據庫的備份存儲在目錄結構中
年/月/日/時間/ backup_name
一個例子是
basics_mini / 2012/11/05/012232 / RATIONAL.0.db2inst1.NODE0000.20110505004037.001 basics_mini / 2012/11/06/012251 / RATIONAL.0.db2inst1.NODE0000.20110505003930.001
請注意,無法使用備份文件中的時間戳。 在自動化測試開始之前,服務器時間設置為5.5.2011
所以問題是如果我將“基本目錄”(basics_mini)傳遞給我要編寫的某個函數,我將如何獲取最新文件。 我的想法是,我列出了基本目錄,並按時間排序以獲得年份。 然后我會按月,日和時間做同樣的事情。
我想知道在php中是否有任何“更容易”的解決方案。
那么,您可以立即獲取整個目錄樹並從中獲取最后一個元素:
$baseFolder = './backup_mini' ;
$arr = glob("{$baseFolder}/*/*/*/*", GLOB_ONLYDIR);
$lastDir = array_pop($arr);
我不知道任何非常簡單的單行,但看起來這可能會有所幫助:
$files = array();
$flags = FilesystemIterator::CURRENT_AS_SELF;
$dir = new RecursiveDirectoryIterator('/path/to/basics_mini', $flags);
foreach ($dir as $path) {
if ($path->isFile()) {
$files[$path->getPath()] = $path->getFilename();
}
}
ksort($files);
您可能希望使用RecursiveDirectoryIterator
因為您的目錄結構稍微復雜一些。
FilesystemIterator
常量也很有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.