2013-06-27 137 views

回答

0

您可能希望嘗試使用cron像每隔一分鐘一樣啓動腳本,並檢查目錄列表之間的差異(來自之前和當前我的意思),而不是日期。這不是一個完美的解決方案,但它會起作用。

檢查目錄用一陽指:

$dirs = array_filter(glob('*'), 'is_dir'); 

array_diff

+0

Bingo究竟是什麼樣的方式纔是正確的。 – user2473178

+0

檢查如何在這裏找到目錄:http://stackoverflow.com/questions/2524151/php-get-all-subdirectories-of-a-given-directory?answertab=active#tab-top 並比較目錄數組與:[array_diff](http://php.net/manual/en/function.array-diff.php) –

1

Quote from @Alin Purcaru後對它們進行比較:

使用filectime。對於Windows,它將返回創建時間,對於Unix來說,這是最好的更改時間,因爲在Unix上沒有創建時間(在大多數文件系統中)。

使用參考文件比較文件的年齡允許您檢測使用數據庫的新文件。

// Path to the reference file. 
// All files newer than this will be treated as new 
$referenceFile="c:\Data\ref"; 
// Location to search for new folders 
$dirsLocation="c:\Data\*"; 

// Get modification date of reference file 
if (file_exists($referenceFile)) 
    $referenceTime = fileatime($referenceFile); 
else 
    $referenceTime = 0; 

// Compare each directory with the reference file 
foreach(glob($dirsLocation, GLOB_ONLYDIR) as $dir) { 
    if (filectime($dir) > $referenceTime) 
    echo $dir . " is new!"; 
} 

// Update modification date of the reference file 
touch($referenceFile); 

另一種解決辦法是使用一個數據庫。任何不在數據庫中的文件夾都是新的。這確保不會捕獲修改的文件夾。

+0

fileatime返回上次訪問時間(即修改時間)。當我們將$ referenceFile與$ dirsLocation進行比較時,if condirion變爲true,並且總是說這個文件是新的。 – user2473178