2017-10-02 2 views
-6

Pourquoi ce code renvoie-t-il System.IO.FileInfo []? et non une liste d'articles nommé login.txtCe code me donne la sortie "System.IO.FileInfo []" et il ne peut pas trouver le fichier en cours de recherche

  Console.WriteLine("Searching for users wait..."); 
     string username; 
     string password; 
     var fileList = new DirectoryInfo("C:").GetFiles("login.txt", SearchOption.AllDirectories); 
     string Lists = fileList.ToString(); 
     Console.WriteLine(Lists); 
     var position = Lists.IndexOf("login"); 
     if (position == -1) 
     { 
      Console.WriteLine("No users Found.... FUCK!!"); 
      Console.WriteLine("Lets create a user. insert username"); 
      username = Console.ReadLine(); 
      Console.WriteLine("Add a password"); 
      password = Console.ReadLine(); 
      string loginData = username + " " + password; 
      try { System.IO.File.WriteAllText("C:", loginData); } 
      catch (System.UnauthorizedAccessException) 
      { 

       Console.WriteLine("I have no access to create a login file..."); 
       Console.WriteLine("I will now to to gain access"); 
       Process proc = new Process(); 
       proc.StartInfo.FileName = "ConsoleApp2.exe"; 
       proc.StartInfo.UseShellExecute = true; 
       proc.StartInfo.Verb = "runas"; 
       proc.Start(); 

      } 
     } 

J'ai besoin pour faire un fichier txt qui stocke un nom d'utilisateur et un mot de passe, et j'ai besoin aussi de rechercher ce fichier, mais je pense im faire quelque chose de mal ici ..

espère vous aider grâce

+1

'Console.WriteLine (string.join (Environment.NewLine, fileList));' au lieu de 'Console.WriteLine (Listes); ' –

+0

parce que votre type de fichier' fileList' est de type 'System.IO.FileInfo []' –

Répondre

3

Lors de l'impression sur une collection (fileList dans votre code)

// wrong way 
    string Lists = fileList.ToString(); 
    Console.WriteLine(Lists); 

vous devez soit le représenter comme string, par ex. avec une aide de string.Join

Console.WriteLine(string.Join(Environment.NewLine, fileList)); 

ou mettre en oeuvre une boucle :

foreach (var item in fileList) 
    Console.WriteLine(item);