// Obtain all drive strings [] drives = Environment. getLogicalDrives (); foreach (string driver in drives) {Console. writeLine (driver); // driver information DriveInfo di = new DriveInfo (driver); // whether the Console is ready. writeLine ("isRead:" + di. isReady); // name Console. writeLine ("name:" + di. name); // driver root directory DirectoryInfo root = di. rootDirectory; RecursiveAsync (root); Console. writeLine ();} Console. readKey (); // method body private async static Void RecursiveAsync (DirectoryInfo root) {await Task. run () => {try {// get all files FileInfo [] Fi = root. getFiles ("*. * "); if (FS! = Null & FCM. Length> 0) {foreach (FileInfo fi in fi) {// file name string name = fi. FullName; name = name. Length> 100? Name. Substring (0,100) + "... ": Name; Console. writeLine (name) ;}// obtain the subdirectory DirectoryInfo [] dis = root. getDirectories (); // The subdirectory foreach (DirectoryInfo di in dis) {// recursive subdirectory RecursiveAsync (di) ;}} catch (Exception e) {Console. writeLine (e. message );}});}