RecursiveDirectoryIterator目录操作类,recursive
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>
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不具备复制文件的方法,它只负责文件内容的读写等功能
呵呵,当前目录就是你所在的位置,通俗点就是你在哪个文件夹里,你所在的文件夹或盘就是当前目录,必须是直接所在的目录才叫当前目录
如图的当前目录为“淘宝男装”

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PyCharm ist eine sehr beliebte integrierte Entwicklungsumgebung (IDE) für Python. Sie bietet eine Fülle von Funktionen und Tools, um die Python-Entwicklung effizienter und komfortabler zu gestalten. Dieser Artikel führt Sie in die grundlegenden Betriebsmethoden von PyCharm ein und stellt spezifische Codebeispiele bereit, um den Lesern einen schnellen Einstieg zu erleichtern und sich mit der Bedienung des Tools vertraut zu machen. 1. Laden Sie PyCharm herunter und installieren Sie es. Zuerst müssen wir zur offiziellen Website von PyCharm gehen (https://www.jetbrains.com/pyc).

Betriebsschritte und Vorsichtsmaßnahmen für LinuxDeploy LinuxDeploy ist ein leistungsstarkes Tool, mit dem Benutzer schnell verschiedene Linux-Distributionen auf Android-Geräten bereitstellen können, sodass Benutzer ein vollständiges Linux-System auf ihren Mobilgeräten erleben können. In diesem Artikel werden die Betriebsschritte und Vorsichtsmaßnahmen von LinuxDeploy ausführlich vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern zu helfen, dieses Tool besser zu nutzen. Arbeitsschritte: LinuxDeploy installieren: Zuerst installieren

Vermutlich haben viele Benutzer zu Hause mehrere ungenutzte Computer und haben das Einschaltpasswort völlig vergessen, weil sie längere Zeit nicht benutzt wurden. Sie möchten also wissen, was zu tun ist, wenn sie das Passwort vergessen? Dann lasst uns gemeinsam einen Blick darauf werfen. Was tun, wenn Sie vergessen, F2 für das Win10-Startkennwort zu drücken? 1. Drücken Sie den Netzschalter des Computers und drücken Sie dann beim Booten F2 (verschiedene Computermarken haben unterschiedliche Tasten zum Aufrufen des BIOS). 2. Suchen Sie in der BIOS-Schnittstelle nach der Sicherheitsoption (der Speicherort kann je nach Computermarke unterschiedlich sein). Normalerweise im Einstellungsmenü oben. 3. Suchen Sie dann die Option „SupervisorPassword“ und klicken Sie darauf. 4. Zu diesem Zeitpunkt kann der Benutzer sein Passwort sehen und gleichzeitig die Option „Aktiviert“ daneben finden und auf „Dis“ umstellen.

Mit der Beliebtheit von Smartphones ist die Screenshot-Funktion zu einer der wesentlichen Fähigkeiten für die tägliche Nutzung von Mobiltelefonen geworden. Als eines der Flaggschiff-Handys von Huawei hat die Screenshot-Funktion des Huawei Mate60Pro natürlich große Aufmerksamkeit bei den Nutzern auf sich gezogen. Heute werden wir die Screenshot-Bedienungsschritte des Huawei Mate60Pro-Mobiltelefons teilen, damit jeder bequemer Screenshots machen kann. Erstens bietet das Huawei Mate60Pro-Mobiltelefon eine Vielzahl von Screenshot-Methoden, und Sie können die Methode auswählen, die Ihren persönlichen Gewohnheiten entspricht. Im Folgenden finden Sie eine detaillierte Einführung in mehrere häufig verwendete Abfangfunktionen:

Die mobile Version der WeChat-Lese-App ist eine sehr gute Lesesoftware. Sie können sie jederzeit und überall mit nur einem Klick lesen und online lesen Sortieren Sie Ihre Bücher ordentlich und genießen Sie eine angenehme und entspannte Leseatmosphäre. Wechseln Sie den Lesemodus verschiedener Szenarien, aktualisieren Sie jeden Tag kontinuierlich die neuesten Buchkapitel, unterstützen Sie die Online-Anmeldung von mehreren Geräten und laden Sie sie stapelweise in das Bücherregal herunter. Sie können es mit oder ohne Internet lesen, sodass jeder mehr Wissen daraus entdecken kann Jetzt erläutert der Herausgeber online die Methode zum Anzeigen des Katalogs für WeChat-Lesepartner. 1. Öffnen Sie das Buch, dessen Katalog Sie ansehen möchten, und klicken Sie in die Mitte des Buchs. 2. Klicken Sie auf das Symbol mit den drei Linien in der unteren linken Ecke. 3. Sehen Sie sich im Popup-Fenster den Buchkatalog an

PHP-String-Operation: Eine praktische Methode zum effektiven Entfernen von Leerzeichen Bei der PHP-Entwicklung kommt es häufig vor, dass Sie Leerzeichen aus einem String entfernen müssen. Das Entfernen von Leerzeichen kann die Zeichenfolge sauberer machen und die nachfolgende Datenverarbeitung und -anzeige erleichtern. In diesem Artikel werden mehrere effektive und praktische Methoden zum Entfernen von Leerzeichen vorgestellt und spezifische Codebeispiele angehängt. Methode 1: Verwenden Sie die in PHP integrierte Funktion trim(). Die in PHP integrierte Funktion trim() kann Leerzeichen an beiden Enden der Zeichenfolge entfernen (einschließlich Leerzeichen, Tabulatoren, Zeilenumbrüche usw.), was sehr praktisch und einfach ist benutzen.

Ele.me ist eine Software, die eine Vielzahl verschiedener Köstlichkeiten zusammenführt. Der Händler kann diese sofort nach Erhalt der Bestellung über die Software binden Betriebsmethode Denken Sie daran, die chinesische PHP-Website zu besuchen. Anweisungen zum Binden von WeChat an Ele.me: 1. Öffnen Sie zuerst die Ele.me-Software und klicken Sie nach dem Aufrufen der Startseite auf [Mein] in der unteren rechten Ecke. 2. Klicken Sie dann auf die Seite „Mein“. [Konto] in der oberen linken Ecke; 3. Gehen Sie dann zur Seite mit den persönlichen Informationen, auf der wir Mobiltelefone, WeChat, Alipay und Taobao verknüpfen können. 4. Nach dem letzten Klick wählen wir das WeChat-Konto aus Das muss auf der WeChat-Autorisierungsseite gebunden werden und auf „Einfach zulassen“ klicken.

Tree ist ein Befehlszeilentool, das den Inhalt eines Verzeichnisses rekursiv in einem Baumformat auflistet, sodass alle Verzeichnisse, Unterverzeichnisse und Dateien hierarchisch aufgelistet werden und so die Organisationsstruktur von Dateien und Ordnern visuell angezeigt wird. Das Folgende ist die Installation und Verwendung von Tree unter Windows- und Linux-Systemen. Die Installation und Verwendung von Tree unter Linux: aptupdate&&aptinstalltree Im Folgenden werden die üblichen Methoden zur Verwendung des Tree-Befehls beschrieben. #Zeigen Sie den Verzeichnisbaum unter dem angegebenen Pfad an.tree/d/temp#Begrenzen Sie die maximale Anzeigetiefe.tree-L3#Zeigen Sie nur Verzeichnisse, aber keine Dateien an.tree-d#Anzeige einschließlich versteckter Dateien und Verzeichnisse tr
