<summary>////Return all file information in the specified directory///</summary>//<param name= "Strdirectory" >< /param>//<returns></returns> public list<fileinfo> getallfilesindirectory (String str Directory) {list<fileinfo> listfiles = new list<fileinfo> ();//Save all file information Direc Toryinfo directory = new DirectoryInfo (strdirectory); directoryinfo[] Directoryarray = directory. GetDirectories (); fileinfo[] Fileinfoarray = directory. GetFiles (); if (Fileinfoarray.length > 0) listfiles.addrange (fileinfoarray); foreach (DirectoryInfo _directoryinfo in Directoryarray) {DirectoryInfo Directorya = new Direct Oryinfo (_directoryinfo.fullname); directoryinfo[] Directoryarraya = Directorya.getdirectories (); fileinfo[] Fileinfoarraya = Directorya.getfiles (); if (Fileinfoarraya.length > 0) listfiles. AddRange (Fileinfoarraya); Getallfilesindirectory (_directoryinfo.fullname);//Recursive traversal} return listfiles; }
<summary>///To move its contents to another directory from one directory///</summary>//<param name= "Directorysource" & gt; source directory </param>//<param name= "Directorytarget" > target directory </param> private void Movefolderto (ST Ring Directorysource, String directorytarget) {//check for the existence of the destination directory if (! Directory.Exists (Directorytarget)) {directory.createdirectory (directorytarget); }//To move the file first DirectoryInfo DirectoryInfo = new DirectoryInfo (Directorysource); fileinfo[] files = directoryinfo.getfiles (); Move all Files foreach (FileInfo file in files) {//If its own file is running, cannot be overwritten directly, need to be renamed and then moved 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 directory directoryinfo[] Directoryinfoarray = Directoryinfo.getdirectories (); foreach (DirectoryInfo dir in Directoryinfoarray) {Movefolderto (Path.Combine (Directorysource, D ir. Name), Path.Combine (Directorytarget, dir. Name)); } }
<summary>///copy its contents to another directory from one directory///</summary>//<param name= "Directorysource" SOURCE directory </param>///<param Name= "Directorytarget" > target directory </param> static void Copyfolderto (Strin G Directorysource, String directorytarget) {//check for the existence of the destination directory if (! Directory.Exists (Directorytarget)) {directory.createdirectory (directorytarget); }//To copy the file first DirectoryInfo DirectoryInfo = new DirectoryInfo (Directorysource); fileinfo[] files = directoryinfo.getfiles (); Copy all files foreach (FileInfo file in files) {file. CopyTo (Path.Combine (directorytarget, file. Name)); }//Last copy directory directoryinfo[] Directoryinfoarray = Directoryinfo.getdirectories (); foreach (DirectoryInfo dir in Directoryinfoarray) {Copyfolderto (Path.Combine (directorYsource, dir. Name), Path.Combine (Directorytarget, dir. Name)); } }
C # Get all file information, move directory, copy directory under the specified directory