Write your own class of PHP file and folder operations (create, delete, move, copy)

Source: Internet
Author: User
  1. /**

  2. * Manipulating file Classes
  3. *
  4. Example
  5. * Fileutil::createdir (' A/1/2/3 '); Test build folder Build a A/1/2/3 folder
  6. * Fileutil::createfile (' B/1/2/3 '); Test build file Build a 3 file under the b/1/2/folder
  7. * Fileutil::createfile (' b/1/2/3.exe '); Test build file Build a 3.exe file under the b/1/2/folder
  8. * Fileutil::copydir (' B ', ' d/e '); Test the Replication folder create a d/e folder and copy the contents of the B folder
  9. * Fileutil::copyfile (' b/1/2/3.exe ', ' b/b/3.exe '); Test the copy file to create a b/b folder and copy the 3.exe files in the B/1/2 folder
  10. * Fileutil::movedir (' A ', ' b/c '); Test the Move folder to create a b/c folder and move the contents of the a folder into the folder and delete the A folders
  11. * Fileutil::movefile (' b/1/2/3.exe ', ' b/d/3.exe '); Test the move file to create a b/d folder and move the 3.exe in the B/1/2
  12. * Fileutil::unlinkfile (' b/d/3.exe '); Test Delete file Delete b/d/3.exe file
  13. * Fileutil::unlinkdir (' d '); Test Delete folder Delete D folder
  14. */
  15. Class Fileutil {
  16. /**
  17. * Create a folder
  18. *
  19. * @param string $AIMURL
  20. * @return Viod
  21. */
  22. function Createdir ($AIMURL) {
  23. $AIMURL = Str_replace (', '/', $AIMURL);
  24. $aimDir = ";
  25. $arr = explode ('/', $AIMURL);
  26. $result = true;
  27. foreach ($arr as $str) {
  28. $aimDir. = $str. '/';
  29. if (!file_exists ($aimDir)) {
  30. $result = mkdir ($aimDir);
  31. }
  32. }
  33. return $result;
  34. }

  35. /**

  36. * Document Creation
  37. *
  38. * @param string $AIMURL
  39. * @param boolean $overWrite This parameter controls whether the original file is overwritten
  40. * @return Boolean
  41. */
  42. function CreateFile ($AIMURL, $overWrite = False) {
  43. if (file_exists ($AIMURL) && $overWrite = = False) {
  44. return false;
  45. } elseif (File_exists ($AIMURL) && $overWrite = = True) {
  46. Fileutil:: Unlinkfile ($AIMURL);
  47. }
  48. $aimDir = DirName ($AIMURL);
  49. Fileutil:: Createdir ($aimDir);
  50. Touch ($AIMURL);
  51. return true;
  52. }

  53. /**

  54. * Move Folder
  55. *
  56. * @param string $oldDir
  57. * @param string $aimDir
  58. * @param boolean $overWrite This parameter controls whether the original file is overwritten
  59. * @return Boolean
  60. */
  61. function Movedir ($oldDir, $aimDir, $overWrite = False) {
  62. $aimDir = Str_replace (', '/', $aimDir);
  63. $aimDir = substr ($aimDir,-1) = = '/'? $aimDir: $aimDir. '/';
  64. $oldDir = Str_replace (', '/', $oldDir);
  65. $oldDir = substr ($oldDir,-1) = = '/'? $oldDir: $oldDir. '/';
  66. if (!is_dir ($oldDir)) {
  67. return false;
  68. }
  69. if (!file_exists ($aimDir)) {
  70. Fileutil:: Createdir ($aimDir);
  71. }
  72. @ $dirHandle = Opendir ($oldDir);
  73. if (! $dirHandle) {
  74. return false;
  75. }
  76. while (false!== ($file = Readdir ($dirHandle))) {
  77. if ($file = = '. ' | | $file = = ' ... ') {
  78. Continue
  79. }
  80. if (!is_dir ($oldDir. $file)) {
  81. Fileutil: MoveFile ($oldDir. $file, $aimDir. $file, $overWrite);
  82. } else {
  83. Fileutil: Movedir ($oldDir. $file, $aimDir. $file, $overWrite);
  84. }
  85. }
  86. Closedir ($dirHandle);
  87. return rmdir ($oldDir);
  88. }

  89. /**

  90. * Move Files
  91. *
  92. * @param string $FILEURL
  93. * @param string $AIMURL
  94. * @param boolean $overWrite This parameter controls whether the original file is overwritten
  95. * @return Boolean
  96. */
  97. function MoveFile ($FILEURL, $aimUrl, $overWrite = False) {
  98. if (!file_exists ($FILEURL)) {
  99. return false;
  100. }
  101. if (file_exists ($AIMURL) && $overWrite = False) {
  102. return false;
  103. } elseif (File_exists ($AIMURL) && $overWrite = True) {
  104. Fileutil:: Unlinkfile ($AIMURL);
  105. }
  106. $aimDir = DirName ($AIMURL);
  107. Fileutil:: Createdir ($aimDir);
  108. Rename ($fileUrl, $AIMURL);
  109. return true;
  110. }

  111. /**

  112. * Delete Folder
  113. *
  114. * @param string $aimDir
  115. * @return Boolean
  116. */
  117. function Unlinkdir ($aimDir) {
  118. $aimDir = Str_replace (', '/', $aimDir);
  119. $aimDir = substr ($aimDir,-1) = = '/'? $aimDir: $aimDir. '/';
  120. if (!is_dir ($aimDir)) {
  121. return false;
  122. }
  123. $dirHandle = Opendir ($aimDir);
  124. while (false!== ($file = Readdir ($dirHandle))) {
  125. if ($file = = '. ' | | $file = = ' ... ') {
  126. Continue
  127. }
  128. if (!is_dir ($aimDir. $file)) {
  129. Fileutil:: Unlinkfile ($aimDir. $file);
  130. } else {
  131. Fileutil:: Unlinkdir ($aimDir. $file);
  132. }
  133. }
  134. Closedir ($dirHandle);
  135. return rmdir ($aimDir);
  136. }

  137. /**

  138. * Delete Files
  139. *
  140. * @param string $AIMURL
  141. * @return Boolean
  142. */
  143. function Unlinkfile ($AIMURL) {
  144. if (file_exists ($AIMURL)) {
  145. Unlink ($AIMURL);
  146. return true;
  147. } else {
  148. return false;
  149. }
  150. }

  151. /**

  152. * Copy Folder
  153. *
  154. * @param string $oldDir
  155. * @param string $aimDir
  156. * @param boolean $overWrite This parameter controls whether the original file is overwritten
  157. * @return Boolean
  158. */
  159. function Copydir ($oldDir, $aimDir, $overWrite = False) {
  160. $aimDir = Str_replace (', '/', $aimDir);
  161. $aimDir = substr ($aimDir,-1) = = '/'? $aimDir: $aimDir. '/';
  162. $oldDir = Str_replace (', '/', $oldDir);
  163. $oldDir = substr ($oldDir,-1) = = '/'? $oldDir: $oldDir. '/';
  164. if (!is_dir ($oldDir)) {
  165. return false;
  166. }
  167. if (!file_exists ($aimDir)) {
  168. Fileutil:: Createdir ($aimDir);
  169. }
  170. $dirHandle = Opendir ($oldDir);
  171. while (false!== ($file = Readdir ($dirHandle))) {
  172. if ($file = = '. ' | | $file = = ' ... ') {
  173. Continue
  174. }
  175. if (!is_dir ($oldDir. $file)) {
  176. Fileutil: CopyFile ($oldDir. $file, $aimDir. $file, $overWrite);
  177. } else {
  178. Fileutil: Copydir ($oldDir. $file, $aimDir. $file, $overWrite);
  179. }
  180. }
  181. Return Closedir ($dirHandle);
  182. }

  183. /**

  184. * Copy Files
  185. *
  186. * @param string $FILEURL
  187. * @param string $AIMURL
  188. * @param boolean $overWrite This parameter controls whether the original file is overwritten
  189. * @return Boolean
  190. */
  191. function CopyFile ($FILEURL, $aimUrl, $overWrite = False) {
  192. if (!file_exists ($FILEURL)) {
  193. return false;
  194. }
  195. if (file_exists ($AIMURL) && $overWrite = = False) {
  196. return false;
  197. } elseif (File_exists ($AIMURL) && $overWrite = = True) {
  198. Fileutil:: Unlinkfile ($AIMURL);
  199. }
  200. $aimDir = DirName ($AIMURL);
  201. Fileutil:: Createdir ($aimDir);
  202. Copy ($FILEURL, $AIMURL);
  203. return true;
  204. }
  205. }
  206. ?>
Copy Code

Another method of invocation (non-static invocation):

    1. $fu = new Fileutil ();
    2. $fu->copyfile (' A/1/2/3 ', ' A/1/2/4 ');
Copy Code
  • Related Article

    Contact Us

    The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

    If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.