PHP traverses the directory, generates the md5 value of each file in the directory and writes it to the result file
Release: 2016-07-23 08:55:00
Original
918 people have browsed it
-
- /**
- * @author Administrator
- *
- */
- class TestGenerate {
- public static $appFolder = "";
- public static $ignoreFilePaths = array (
- "xxxx/xxx.php"
- );
- public static function start() {
- $AppPath = "E:\myApp";
- TestGenerate::$appFolder = $AppPath;
- $destManifestPath = "E:\temp2\dest.md5.txt";
- // dest file handle
- $manifestHandle = fopen ( $destManifestPath, "w+" );
- // write header
- TestGenerate::writeMaifestHeader ( $manifestHandle );
- // write md5
- TestGenerate::traverse ( $AppPath, $manifestHandle );
- // write footer
- TestGenerate::writeMaifestFooter ( $manifestHandle );
- // close file
- fclose ( $manifestHandle );
- }
- /**
- * Traverse the files in the application root directory and generate the corresponding file length and md5 information
- *
- * @param unknown $AppPath
- * The application root directory, such as: xxx/xxx/analytics
- * @param string $destManifestPath
- * The file handle of the storage location of the generated manifest file
- */
- public static function traverse($AppPath, $manifestHandle) {
- if (! file_exists ( $AppPath )) {
- printf ( $AppPath . " does not exist!" );
- return;
- }
- if (! is_dir ( $AppPath )) {
- printf ( $AppPath . " is not a directory!" );
- return;
- }
- if (! ($dh = opendir ( $AppPath ))) {
- printf ( "Failure while read diectory!" );
- return;
- }
- // read files
- while ( ($file = readdir ( $dh )) != false ) {
- $subDir = $AppPath . DIRECTORY_SEPARATOR . $file;
- if ($file == "." || $file == "..") {
- continue;
- } else if (is_dir ( $subDir )) {
- // rescure
- TestGenerate::traverse ( $subDir, $manifestHandle );
- } else {
- // Sub is a file.
- TestGenerate::writeOneFieToManifest ( $subDir, $manifestHandle );
- }
- }
- // close dir
- closedir ( $dh );
- }
- /**
- * Write the md5 information of a file to the file
- *
- * @param unknown $filePath
- * @param unknown $fileHandle
- */
- public static function writeOneFieToManifest($filePath, $fileHandle) {
- if (! file_exists ( $filePath )) {
- continue;
- }
- $relativePath = str_replace ( TestGenerate::$appFolder . DIRECTORY_SEPARATOR, '', $filePath );
- $relativePath = str_replace ( "\", "/", $relativePath );
- // ignore tmp directory
- if (strpos ( $relativePath, "tmp/" ) === 0) {
- return;
- }
- $fileSize = filesize ( $filePath );
- $fileMd5 = @md5_file ( $filePath );
- $content = "tt";
- $content .= '"';
- $content .= $relativePath;
- $content .= '"';
- $content .= ' => array("';
- $content .= $fileSize;
- $content .= '","';
- $content .= $fileMd5;
- $content .= '"),';
- $content .= "n";
- if (! fwrite ( $fileHandle, $content )) {
- print ($filePath . " can not be written!") ;
- }
- }
- /**
- * Write header information in the manifest file
- *
- * @param unknown $fileHandle
- */
- public static function writeMaifestHeader($fileHandle) {
- $header = "
$header .= "n";
- $header .= "// This file is automatically generated";
- $header .= "n";
- $header .= "namespace test;";
- $header .= "n";
- $header .= "class MyFile {";
- $header .= "n";
- $header .= "tstatic $allFiles=array(";
- $header .= "n";
- if (! fwrite ( $fileHandle, $header )) {
- printf ( "Failure while write file header." );
- }
- }
- /**
- * Write tail information in the manifest file
- *
- * @param unknown $fileHandle
- */
- public static function writeMaifestFooter($fileHandle) {
- $footer = "t);";
- $footer .= "n";
- $footer .= "}";
- $footer .= "n";
- if (! fwrite ( $fileHandle, $footer )) {
- printf ( "Failure while write file header." );
- }
- }
- }
- // Start application
- TestGenerate::start ();
- ?>
复制代码
|
目录下, php
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
-
2024-08-18 00:42:10
-
2024-08-18 00:41:12
-
2024-08-18 00:39:10
-
2024-08-18 00:38:10
-
2024-08-18 00:36:10
-
2024-08-18 00:35:10
-
2024-08-18 00:28:11
-
2024-08-18 00:25:10
-
2024-08-18 00:20:10
-
2024-08-18 00:18:10