目錄
RecursiveDirectoryIterator目录操作类,recursive
C#目录操作
操作系统中什是当前目录?起作用是什
首頁 後端開發 php教程 RecursiveDirectoryIterator目录操作类,recursive_PHP教程

RecursiveDirectoryIterator目录操作类,recursive_PHP教程

Jul 13, 2016 am 10:17 AM
操作 目錄 類別

RecursiveDirectoryIterator目录操作类,recursive

<span>/*</span><span>*
 * @author Funsion Wu
 * @abstract SPL使用案例,全国首发,技术分享,欢迎转帖
 </span><span>*/</span>
<span>class</span> <span>Dir</span> <span>extends</span><span> RecursiveDirectoryIterator {
    </span><span>const</span> CHILD_FIRST = RecursiveIteratorIterator::<span>CHILD_FIRST ;
    </span><span>const</span> LEAVES_ONLY = RecursiveIteratorIterator::<span>LEAVES_ONLY ;
    </span><span>const</span> SELF_FIRST  = RecursiveIteratorIterator::<span>SELF_FIRST ;
    </span><span>/*</span><span> ideas:将Dir类设置为不变类,无状态类 </span><span>*/</span>
    <span>private</span> <span>static</span> <span>function</span> getDirIterator( <span>$dir</span>, <span>$mode</span>=self::<span>LEAVES_ONLY ) {
        </span><span>if</span>( !<span>file_exists</span>(<span>$dir</span>) ){ <span>exit</span><span> ; }
        </span><span>$dirIterator</span> = <span>new</span> RecursiveDirectoryIterator(<span>$dir</span><span>);
        </span><span>$objIterator</span> = <span>new</span> RecursiveIteratorIterator( <span>$dirIterator</span>, <span>$mode</span><span> );
        </span><span>return</span> <span>$objIterator</span><span>;
    }
    </span><span>/*</span><span>*
     * 递归的删除目录                      
     + ----------------------------------------------------- +
     * @param   $dir 要删除的目录
     * @param   $delSelf 决定删除目录or清空目录,默认删除目录
     </span><span>*/</span>
    <span>public</span> <span>static</span> <span>function</span> delDir( <span>$dir</span>, <span>$delSelf</span>=<span>true</span><span> ) {
        </span><span>$dirIterator</span> = self::getDirIterator(<span>$dir</span>, self::<span>CHILD_FIRST);
        </span><span>foreach</span> ( <span>$dirIterator</span> <span>as</span> <span>$file</span><span> ) {
            </span><span>if</span> ( <span>$file</span>-><span>isDir() ) {
                 @ </span><span>rmdir</span>( <span>$file</span>-><span>getRealPath() );
            }</span><span>else</span><span>{
                 @ </span><span>unlink</span>( <span>$file</span>-><span>getRealPath() );
            }
        }
        </span><span>if</span>( <span>$delSelf</span> ) { @ <span>rmdir</span>(<span>$dir</span><span>); }
    }
    </span><span>/*</span><span>*
     * 递归的列出目录,遍历目录
     + -------------------------- +
     * @param   $dir 要操作的目录
     </span><span>*/</span>
    <span>public</span> <span>static</span> <span>function</span> listDir ( <span>$dir</span><span> ) {
        </span><span>$dirIterator</span> = self::getDirIterator( <span>$dir</span>, self::<span>SELF_FIRST );
        </span><span>foreach</span> ( <span>$dirIterator</span> <span>as</span> <span>$file</span><span> ) {
            </span><span>$filepath</span> = <span>str_replace</span>('\\' , '/' , <span>$file</span>-><span>getPath() );
            </span><span>$deep</span> = <span>substr_count</span>( <span>$filepath</span> , '/'<span> );
            </span><span>if</span>( <span>$file</span>-><span>isDir() ) {
                </span><span>$str</span> .= '<div>$deep</span> .'px"> + '<span> ;
                </span><span>$str</span> .=  <span>$file</span>->getBasename() .'</div>'<span> ;
            }</span><span>elseif</span>( <span>$file</span>-><span>isFile() ){
                </span><span>$str</span> .= '<div>$deep</span> .'px">' . <span>$file</span>->getBasename() .'</div>'<span>;
            }
        }
        </span><span>return</span> <span>$str</span><span> ;
    }
    </span><span>/*</span><span>*
     * 统计目录的信息(总字节数,文件数,目录数)
     + -----------------------------=----------- +
     * @param   $dir 要操作的目录
     * @return  由目录信息组成的数组
     </span><span>*/</span>
    <span>public</span> <span>static</span> <span>function</span> countDir( <span>$dir</span><span> ) {
        </span><span>$countDir</span> = <span>$countFiles</span> = <span>$size</span> = 0<span> ;
        </span><span>$dirIterator</span> = self::getDirIterator( <span>$dir</span>, self::<span>SELF_FIRST );
        </span><span>foreach</span> ( <span>$dirIterator</span> <span>as</span> <span>$file</span><span> ) {
            </span><span>if</span>( <span>$file</span>-><span>isDir() ) {
                </span><span>$countDir</span>++<span> ;
            }</span><span>elseif</span>( <span>$file</span>-><span>isFile() ){
                </span><span>$countFiles</span>++<span> ;
                </span><span>$size</span> += <span>$file</span>-><span>getSize() ;
            }
        }
        </span><span>return</span> <span>array</span>( 'countDir'=><span>$countDir</span>, 'countFiles'=><span>$countFiles</span>, 'size'=><span>$size</span>.' Byte'<span> );
    }
    </span><span>/*</span><span>*
     * 递归的创建目录
     + -------------------- +
     * @param   $dir 要创建的目录
     * @param   $mode 所创建目录的读写权限
     </span><span>*/</span>
     <span>public</span> <span>static</span> <span>function</span> makeDir( <span>$dir</span>, <span>$mode</span>=0644<span> ) {
        </span><span>return</span> <span>mkdir</span>( <span>$dir</span>, <span>$mode</span>, <span>true</span><span> );
     }
}

</span><span>/*</span><span> ========================== 调用方法 =========================== </span><span>*/</span>

<span>//</span><span> Dir::delDir('./need_del_dir');
// echo Dir::listDir('tools');
// var_dump( Dir::countDir('tools') );
// Dir::makeDir( 'aaa/ccc/ddd/eee/fff' );</span>
登入後複製

 

C#目录操作

Directory.CreateDirectory(@"C:\123");//创建123
File.Create(@"C:\123\456.txt").Close();//创建456.txt并关闭文件
File.Copy(@"C:\123\456.txt",@"D:\456.txt");//复制文件
注意创建了文件以后要Close()。因为此时这个文件被程序占用了,就不能进行复制。
filestream不具备复制文件的方法,它只负责文件内容的读写等功能
 

操作系统中什是当前目录?起作用是什

呵呵,当前目录就是你所在的位置,通俗点就是你在哪个文件夹里,你所在的文件夹或盘就是当前目录,必须是直接所在的目录才叫当前目录
如图的当前目录为“淘宝男装”


RecursiveDirectoryIterator目录操作类,recursive_PHP教程
 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/888102.htmlTechArticleRecursiveDirectoryIterator目录操作类,recursive /* * * @author Funsion Wu * @abstract SPL使用案例,全国首发,技术分享,欢迎转帖 */ class Dir extends Recurs...
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PyCharm使用教學:詳細指引你執行操作 PyCharm使用教學:詳細指引你執行操作 Feb 26, 2024 pm 05:51 PM

PyCharm是一款非常受歡迎的Python整合開發環境(IDE),它提供了豐富的功能和工具,使得Python開發變得更有效率和便利。本文將為大家介紹PyCharm的基本操作方法,並提供具體的程式碼範例,幫助讀者快速入門並熟練操作工具。 1.下載安裝PyCharm首先,我們需要前往PyCharm官網(https://www.jetbrains.com/pyc

win10開機密碼忘記按F2怎麼操作 win10開機密碼忘記按F2怎麼操作 Feb 28, 2024 am 08:31 AM

想必很多的用戶家裡都有那麼幾台不用的電腦,因為長時間不用完全忘了開機密碼,於是想知道一下,忘記密碼要怎麼操作呢?那就一起來看看吧。 win10開機密碼忘記按F2怎麼操作1、按下電腦的電源鍵,然後開機時按下F2(不同電腦品牌進入bios的按鍵也不同)。 2.在bios介面中,找到security選項(不同品牌電腦的位置可能有所不同)。一般都在頂部的設定選單中。 3.然後找到SupervisorPassword選項並且點選。 4.這時候用戶就可以看到自己的密碼了,同時找到旁邊的Enabled切換為Dis

Linux Deploy的操作步驟及注意事項 Linux Deploy的操作步驟及注意事項 Mar 14, 2024 pm 03:03 PM

LinuxDeploy的操作步驟及注意事項LinuxDeploy是一款強大的工具,可協助使用者在Android裝置上快速部署各種Linux發行版,讓使用者在行動裝置上體驗完整的Linux系統。本文將詳細介紹LinuxDeploy的操作步驟以及注意事項,同時提供具體的程式碼範例,幫助讀者更好地使用此工具。操作步驟:安裝LinuxDeploy:首先在

華為Mate60 Pro截圖操作步驟分享 華為Mate60 Pro截圖操作步驟分享 Mar 23, 2024 am 11:15 AM

隨著智慧型手機的普及,螢幕截圖功能成為日常使用手機的必備技能之一。華為Mate60Pro作為華為公司的旗艦手機之一,其截圖功能自然也備受用戶關注。今天,我們就來分享華為Mate60Pro手機的截圖操作步驟,讓大家能夠更方便地進行截圖操作。首先,華為Mate60Pro手機提供了多種截圖方式,可以依照個人習慣選擇適合自己的方式來操作。以下詳細介紹幾種常用的截

微信讀書怎麼看目錄 看目錄的方法 微信讀書怎麼看目錄 看目錄的方法 Mar 30, 2024 pm 05:56 PM

微信讀書app手機版是一款非常不錯的閱讀軟體,這款軟體內提供的書籍作品非常多,隨時隨地想看就看一鍵搜尋線上閱讀,且都是官方正版授權的,不同類型的書籍整齊排序,享受舒適輕鬆的閱讀氣氛。切換不同情景的閱讀模式,每天不間斷更新最新的書籍章節,支持多端設備在線登錄,批量下載到書架上,有無網絡情況下一樣能看,讓大家從中發現更多知識,現在小編在線詳細為微信讀書夥伴們推送查看目錄的方法。  1.打開需要查看目錄的書籍,點擊書籍中間位置。  2.點選左下方的三條線圖示。  3.在彈出的視窗中,查看書籍目錄即

使用tree生成檔案目錄樹進行展示 使用tree生成檔案目錄樹進行展示 Mar 01, 2024 pm 05:46 PM

tree是一個命令列工具,它以樹狀格式遞歸地列出一個目錄的內容,使得所有的目錄、子目錄和文件以分層的方式列出,從而直觀地展示文件和資料夾的組織結構。以下是tree在Windows和Linux系統下的安裝與使用方法Linux下tree的安裝與使用Linux下安裝tree:aptupdate&&aptinstalltree以下是tree指令的常用方式。 #顯示指定路徑下的目錄樹tree/d/temp#限制最大的展示深度tree-L3#只顯示目錄不顯示檔案tree-d#顯示包含隱藏的檔案和目錄tr

Astar質押原理、收益拆解、空投項目及策略 & 操作保姆級攻略 Astar質押原理、收益拆解、空投項目及策略 & 操作保姆級攻略 Jun 25, 2024 pm 07:09 PM

目錄Astar Dapp 質押原理質押收益 拆解潛在空投項目:AlgemNeurolancheHealthreeAstar Degens DAOVeryLongSwap 質押策略 & 操作“AstarDapp質押”今年初已升級至V3版本,對質押收益規則做了不少調整。目前首個質押週期已結束,第二質押週期的「投票」子週期剛開始。若要獲得「額外獎勵」收益,需掌握此關鍵階段(預計持續至6月26日,現餘不到5天)。我將細緻拆解Astar質押收益,

Win8電腦開機密碼忘記?這樣操作立刻恢復! Win8電腦開機密碼忘記?這樣操作立刻恢復! Mar 27, 2024 pm 10:12 PM

Win8電腦開機密碼忘記是許多人在日常使用電腦時會遇到的問題。當我們忘記了登入密碼,會導致無法正常進入系統,對我們的日常使用造成不便。如果你剛好碰到了這個問題,不必擔心,下面我將介紹一些簡單的操作,幫助你快速恢復Win8電腦的開機密碼。方法一:使用Microsoft帳號密碼如果你的Win8電腦登入使用的是Microsoft帳戶,你可以嘗試使用該帳號的密碼進行

See all articles