什麼是刪除所有文件在所有子文件夾除了那些文件名是「whatever.jpg」在PHP中最快方法是什麼?如何刪除除PHP文件名爲'whatever.jpg'以外的所有子文件夾中的所有文件?
1
A
回答
3
爲什麼不使用迭代器?這是測試:
function run($baseDir, $notThis)
{
foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($baseDir), RecursiveIteratorIterator::LEAVES_ONLY) as $file) {
if ($file->isFile() && $file->getFilename() != $notThis) {
@unlink($file->getPathname());
}
}
}
run('/my/path/base', 'do_not_cancel_this_file.jpg');
+0
非常有趣,謝謝。使用「@unlink」和「取消鏈接」有什麼區別? – ProgrammerGirl 2012-07-17 23:48:38
+0
@取消由該語句生成的任何錯誤消息。 – Dreen 2012-07-18 00:15:24
+0
這是一個很好的 – Ron 2012-07-18 07:26:54
0
未經測試:
function run($baseDir) {
$files = scandir("{$baseDir}/");
foreach($files as $file) {
$path = "{$badeDir}/{$file}";
if($file != '.' && $file != '..') {
if(is_dir($path)) {
run($path);
} elseif(is_file($path)) {
if(/* here goes you filtermagic */) {
unlink($path);
}
}
}
}
}
run('.');
1
這應該是什麼youre尋找,$but
是一個數組控股例外。 不知道它的是最快的,但它是目錄迭代最常用的方式。
function rm_rf_but ($what, $but)
{
if (!is_dir($what) && !in_array($what,$but))
@unlink($what);
else
{
if ($dh = opendir($what))
{
while(($item = readdir($dh)) !== false)
{
if (in_array($item, array_merge(array('.', '..'),$but)))
continue;
rm_rf_but($what.'/'.$item, $but);
}
}
@rmdir($what); // remove this if you dont want to delete the directory
}
}
使用例:
rm_rf_but('.', array('notme.jpg','imstayin.png'));
相關問題
- 1. 刪除除C#中的文件以外的所有文件夾
- 2. 批處理刪除文件夾+子文件夾中除文件類型以外的所有文件
- 3. 刪除父文件夾內除特定擴展名以外的所有子文件夾和文件
- 4. 刪除名爲「已刪除」的所有文件夾中的文件
- 5. Powershell v1 - 刪除指定文件夾以外的所有文件和文件夾
- 6. 如何刪除文件夾及其子文件夾內的所有空文件?
- 7. 刪除文件夾和所有子文件夾(包括文件夾)中的所有文件
- 8. NSIS - 刪除除一個文件以外的所有文件
- 9. 刪除文件夾中的所有文件,排除某些文件被刪除
- 10. 刪除文件夾內的所有文件,但刪除最後?
- 11. 刪除除了一個文件夾中的所有文件夾/文件和所有根文件
- 12. 批處理文件刪除除指定列表以外的所有文件夾
- 13. 如何刪除除只讀文件以外的文件夾中的所有文件?
- 14. 刪除所有文件夾的內容
- 15. 刪除任何文件夾中的所有文件
- 16. 如何刪除文件夾中除最新三個文件以外的所有文件
- 17. SSH/Shell - 刪除文件夾和子文件夾中名稱爲「____」的所有文件夾
- 18. 如何git-pull除一個文件夾以外的所有文件夾
- 19. Python - 從文件夾中的所有文件中刪除重音
- 20. 如何刪除.bat腳本中除1文件夾以外的文件夾中的所有文件和子文件夾?
- 21. 在PHP中刪除所有子目錄中的文件名的特定文件
- 22. 如何遞歸刪除以「._」開頭的文件夾中的所有文件?
- 23. Ansible,刪除X最新文件夾以外的所有內容
- 24. 如何刪除Azure文件存儲文件夾中的所有文件?
- 25. 刪除所有文件和文件夾,但排除目錄
- 26. 如何使用php刪除特定文件夾中的所有文件
- 27. 從windows中的所有子文件夾中刪除CVS文件夾
- 28. 刪除FTP連接中的文件夾和所有文件
- 29. 通過VB刪除文件夾中的所有excel文件
- 30. 刪除文件夾中的所有文件
你是什麼意思**最快**? – Teneff 2012-07-17 20:13:29
你有沒有想要分享的緩慢方式? – 2012-07-17 20:14:49
我不打擾使用PHP,操作系統有更好的選擇:發現! -name filename -type f -delete – 2012-07-17 20:18:07