2016-05-08 10 views
-1

kann ich nicht aus Methodengruppe in Zeichenfolge konvertieren Ich habe diese Software, die eine ausgewählte Datei scannt und dann den MD5-Hash berechnet.Beim Lesen der Datei C# .NET

Ich versuche, den berechneten MD5-Hash mit einer Liste von Hashes aus einem Wörterbuch zu vergleichen, um zu sehen, ob es übereinstimmt, und wenn es das tut, sagt es etwas.

Wie programmiere ich programmatisch die dictionary.txt zu meinem Code.

ich versucht mit der File.OpenRead() aber ich erhalte eine Fehlermeldung sagen

Argument 1: aus ‚Gruppenmethode‘ nicht konvertieren ‚string‘

Habe ich etwas verpasst?

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using System.IO; 
using System.Security.Cryptography; 

namespace MD5_Hash_Compare 
{ 
    public partial class lblTitle : Form 
    { 
     public lblTitle() 
     { 
      InitializeComponent(); 
     } 

     public string MD5HashFile(string fn) 
     { 
      byte[] hash = MD5.Create().ComputeHash(File.ReadAllBytes(fn)); 
      return BitConverter.ToString(hash).Replace("-", ""); 
     } 

     private Stream TestStream() 
     { 
      Stream fs = File.OpenRead(@"C:\PathToDictionary"); 
      return fs; 
     } 

     public string GetMD5(string file) 
     { 
      using (var md5 = MD5.Create()) 
      using (var stream = File.OpenRead(TestStream)) 
      return Encoding.Default.GetString(md5.ComputeHash(stream)); 
     } 

     private void lblTitle_Load(object sender, EventArgs e) 
     { 

     } 

     private void scanButton_Click(object sender, EventArgs e) 
     { 
      string path = txtFilePath.Text; 

      //if there is something in the textbox to scan we need to make sure that its doing it. 
      if (!File.Exists(path)) 
      { 
       // ... report problem to user. 
       return; 
      } 
      else 
      { 
       MessageBox.Show("Scan Complete"); 
      } 

      hashDisplay.Text = MD5HashFile(path); 
     } 

     private void browseButton_Click(object sender, EventArgs e) 
     { 
      OpenFileDialog ofd = new OpenFileDialog(); 
      if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
      { 
       txtFilePath.Text = (ofd.FileName); 
      } 
     } 
    } 
} 

Antwort

3

In der GetMD5 Funktion, tun Sie dies

using (var stream = File.OpenRead(TestStream)) 

TestStream eine Funktion ist, so müssen Sie Klammern hinzuzufügen, es zu nennen.

using (var stream = File.OpenRead(TestStream())) 
+0

Also nicht ich brauche die "Rückkehr Encoding.Default.GetString (md5.ComputeHash (Strom))," überhaupt? –

+0

Ja, Sie brauchen es ... aber Sie müssen '()' neben 'TestStream' in der Zeile oben hinzufügen. – zdimension

+0

Das habe ich gemacht und es hat mich verwirrt, weil ich diesen Fehler bekommen habe. "kann nicht von 'System.IO.Stream' in 'String' konvertieren" –