usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.IO;namespacemytool{ Public classFileoperator {/// <summary> ///returns all file information in the specified directory/// </summary> /// <param name= "Strdirectory" >Directory String</param> /// <returns></returns> Public StaticList<fileinfo> Getallfilesindirectory (stringstrdirectory) {List<FileInfo> Listfiles =NewList<fileinfo> ();//Save all the file informationDirectoryInfo directory =NewDirectoryInfo (strdirectory); Directoryinfo[] Directoryarray=directory. GetDirectories (); Fileinfo[] Fileinfoarray=directory. GetFiles (); if(Fileinfoarray.length >0) Listfiles.addrange (Fileinfoarray); foreach(DirectoryInfo _directoryinfoinchDirectoryarray) {DirectoryInfo Directorya=NewDirectoryInfo (_directoryinfo.fullname); Directoryinfo[] Directoryarraya=directorya.getdirectories (); Fileinfo[] Fileinfoarraya=Directorya.getfiles (); if(Fileinfoarraya.length >0) Listfiles.addrange (Fileinfoarraya); Getallfilesindirectory (_directoryinfo.fullname);//Recursive traversal } returnListfiles; } /// <summary> ///move its contents from one directory to another/// </summary> /// <param name= "Directorysource" >Source Directory</param> /// <param name= "Directorytarget" >Destination Directory</param> Public voidMovefolderto (stringDirectorysource,stringdirectorytarget) { //Check if the destination directory exists if(!directory.exists (Directorytarget)) {directory.createdirectory (directorytarget); } //move the file first.DirectoryInfo DirectoryInfo =NewDirectoryInfo (Directorysource); fileinfo[] Files=Directoryinfo.getfiles (); //Move all Files foreach(FileInfo fileinchfiles) { //if your own files are running and cannot be overwritten directly, you need to rename them before moving if(File.exists (Path.Combine (Directorytarget, File. Name )) {if(File.exists (Path.Combine (Directorytarget, File. Name +". bak")) {file.delete (Path.Combine (Directorytarget, File). Name+". bak")); } file.move (Path.Combine (Directorytarget, File. Name), Path.Combine (directorytarget, file. Name+". bak")); } file. MoveTo (Path.Combine (directorytarget, file. Name)); } //Last Move directorydirectoryinfo[] Directoryinfoarray =directoryinfo.getdirectories (); foreach(DirectoryInfo dirinchDirectoryinfoarray) {Movefolderto (Path.Combine (Directorysource, dir. Name), Path.Combine (Directorytarget, dir. Name)); } } /// <summary> ///copy its contents from one directory to another/// </summary> /// <param name= "Directorysource" >Source Directory</param> /// <param name= "Directorytarget" >Destination Directory</param> Public Static voidCopyfolderto (stringDirectorysource,stringdirectorytarget) { //Check if the destination directory exists if(!directory.exists (Directorytarget)) {directory.createdirectory (directorytarget); } //to copy a file firstDirectoryInfo DirectoryInfo =NewDirectoryInfo (Directorysource); fileinfo[] Files=Directoryinfo.getfiles (); //Copy all Files foreach(FileInfo fileinchfiles) {file. CopyTo (Path.Combine (directorytarget, file. Name)); } //Last copy directorydirectoryinfo[] Directoryinfoarray =directoryinfo.getdirectories (); foreach(DirectoryInfo dirinchDirectoryinfoarray) {Copyfolderto (Path.Combine (Directorysource, dir. Name), Path.Combine (Directorytarget, dir. Name)); } } }}
Note: The use of their own, not necessarily meet the needs elsewhere.