2017-03-13 1 views
-3

Je suis nouveau à C# essayant d'obtenir ce que j'espérais être un petit script simple pour vérifier le répertoire de travail pour l'existence de test.mdb, puis s'il existe vérifier le sha1 de MyVbs contre MySha et si elles sont identiques, passez à process.Start. Ci-dessous est mon fichier cs que j'écris dans le bloc-notes et de compiler avec le cadre 3.5 csc.exeC# Code ne compile pas vérifier les fichiers avant le début du processus

J'ai renvoyé mon problème après avoir essayé tous les différents et beaucoup de codes SO sha1 dont je peux obtenir de travailler avec mon code et tout dont semblent être très différents et spécifiques à certains besoins. Je me suis contenté de celui que je jugeais le plus approprié à ma situation et l'ai intégré à mon code, mais je n'arrive pas à le faire fonctionner? Donc, si quelqu'un peut aider à résoudre le problème avec mon code afin qu'il fonctionne plutôt que de simplement interdire ma question, il serait très utile pour mon apprentissage C#. Je vous remercie.

using System; 
using System.IO; 
using System.Windows.Forms; 
using System.Diagnostics; 
using System.Reflection; 
using System.Security.Cryptography; 

    [assembly:AssemblyVersionAttribute("1.0.0.0")] 
    [assembly:AssemblyTitleAttribute("MyTitle")] 
    [assembly:AssemblyDescriptionAttribute("MyDescription")] 
    [assembly:AssemblyCompanyAttribute("MyCompany")] 
    [assembly:AssemblyFileVersionAttribute("1.0.0.0")] 
    [assembly:AssemblyProductAttribute("MyProduct")] 

class MyClass { 
    static void Main() 
{ 
var filePath = @"test.mdb"; 
var MyVbs = @"MyScript.vbs"; 
var MySha = "d0be2dc421be4fcd0172e5afceea3970e2f3d940"; 

if (File.Exists(filePath)) 
{ 

using(var cryptoProvider = new SHA1CryptoServiceProvider()) 
{ 
    string hash = BitConverter 
      .ToString(cryptoProvider.ComputeHash(MyVbs)); 

if MyVbs = MySha // This needs changing to make sha1 check but how? 
{ 
     Process process = new Process(); 
     process.StartInfo.FileName = MyVbs; 
     process.Start(); 
} 
else 
{ 
    MessageBox.Show("The sha1 doesn't match. The file has been altered.","My Title"); 
} 
} 



} 
else 
{ 
    MessageBox.Show("File doesn't exist","My Title"); 
} 
    } 
} 
+3

Je recommande fortement d'utiliser Visual Studio Community. Cela vous donnera des messages d'erreur plus clairs et vous aurez plus de facilité à apprendre. –

+0

J'ai l'erreur suivante, c'est ce que vous voyez? 'test.cs (30,4): erreur CS1003: Erreur de syntaxe, '(' attendu test.cs (30,17): erreur CS1026:) expected' – GER

+0

bonjour GER oui c'est l'erreur. Cependant cette ligne "si MyVbs = MySha" que j'ai commentée doit être changée pour faire le sha1 check mais je ne sais pas comment. C'est beaucoup plus que juste un problème de compilation que je poste c'est comment obtenir mon code pour faire ce que j'ai dit question et toute aide serait très appréciée –

Répondre

0

Comme d'autres suggéré, vous devriez vraiment utiliser Visual Studio (Communauté pour l'édition gratuite). Il y a quelques erreurs de syntaxe évidentes comme:

if MyVbs = MySha 

qui devrait être:

if (MyVbs == MySha) 

pour connaître la syntaxe.

Et qui devrait vraiment être:

if (hash == MySha) 

D'après ce que cette partie du code est censé faire selon mon estimation.

Il y a probablement d'autres erreurs dans votre code.

+0

AFract J'ai essayé if (hash == MySha) et j'obtiens l'erreur suivante: - splash.cs (28,23): erreur CS1502: La meilleure méthode surchargée pour 'System.Security.Cryptography.HashAlgorithm.ComputeHash (System. IO.Stream) 'a quelques arguments invalides splash.cs (28,50): erreur CS1503: Argument' 1 ': impossible de convertir' string 'en' System.IO.Stream ' –

+0

Et qu'est-ce que vous avez fait pour le réparer? Avez-vous seulement essayé de comprendre pourquoi il s'en plaint, et cherchez sur votre moteur de recherche préféré comment calculer SHA1 à partir d'une chaîne ou d'un fichier? – AFract

+0

Je cherche désespérément à trouver la solution à mon code et je les essaie tous mais aucun ne fonctionne et tout ce qui me reste est plus de problèmes et encore mon code ne fonctionne pas. Si vous ou quelqu'un sait comment faire fonctionner mon code, je serais vraiment reconnaissant si vous pouviez le poster. Ce serait une grande courbe d'apprentissage pour moi. –