2009-08-04 10 views
6

Sto provando a creare un programma per copiare tutti i file da una directory a un'altra. Ma sto correndo in un problema di base. Dice indentifier previsto quando provo a compilare on line 52.identificativo C# previsto?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.IO; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main() 
     { 
     } 

     public bool RecursiveCopy() 
     { 
      string origDir = @"D:\Documents and Settings\Dub\My Documents\HoN Updates\test"; 
      string destDir = @"C:\Games\HoN"; 
      bool status = false; 
      //get all the info about the original directory 
      DirectoryInfo dirInfo = new DirectoryInfo(origDir); 
      //retrieve all the _fileNames in the original directory 
      FileInfo[] files = dirInfo.GetFiles(origDir); 
      //always use a try...catch to deal 
      //with any exceptions that may occur 
      try 
      { 
       //loop through all the file names and copy them 
       foreach (string file in Directory.GetFiles(origDir)) 
       { 
        FileInfo origFile = new FileInfo(file); 
        FileInfo destFile = new FileInfo(file.Replace(origDir, destDir)); 
        //copy the file, use the OverWrite overload to overwrite 
        //destination file if it exists 
        System.IO.File.Copy(origFile.FullName, destFile.FullName, true); 
        //TODO: If you dont want to remove the original 
        //_fileNames comment this line out 
        File.Delete(origFile.FullName); 
        status = true; 
       } 
       Console.WriteLine("All files in " + origDir + " copied successfully!"); 
      } 
      catch (Exception ex) 
      { 
       status = false; 
       //handle any errors that may have occurred 
       Console.WriteLine(ex.Message); 
      } 
      return status; 
     } 

     public string origDir = @"D:\Documents and Settings\Dub\My Documents\HoN Updates\test"; // ERROR HERE 
     public string destDir = @"C:\Games\HoN"; // ERROR HERE 

     static void RecursiveCopy(origDir, destDir) 
     { 
      Console.WriteLine("done"); 
      Console.ReadLine(); 
     } 
    } 
} 

risposta

16

non ha dato di tipo identificatori alla tua lista degli argomenti qui

static void RecursiveCopy(origDir, destDir) 

dovrebbe essere

static void RecursiveCopy(string origDir, string destDir) 
3

Il tuo metodo RecursiveCopy ha due parametri elencati senza i loro tipi. Dovrebbe essere questo:

static void RecursiveCopy(string origDir, string destDir) 
0

cNon mancano i tipi di parametri nella dichiarazione RecursiveCopy metodo. Basta cambiare

static void RecursiveCopy(origDir, destDir) 

a

static void RecursiveCopy(String origDir, String destDir) 

e tutto va bene.

2

Ecco il problema:

static void RecursiveCopy(origDir, destDir) 

Non si specifica il tipo per i parametri, forse si intende quanto segue:

static void RecursiveCopy(string origDir, string destDir) 

Non ci sono più problemi, tuttavia, che ho l'ho notato E 'possibile si sta ancora lavorando su questi, ma da quello che hai postato:

  • Non si può mai chiamare il metodo di RecursiveCopy. Forse intendevi per chiamarlo da Main() invece di dichiarare un sovraccarico con due parametri?

  • Si dichiara due campi pubblici origDir e destDir ma non li si utilizza mai. Invece si creano due variabili locali in RecursiveCopy() e si usano invece queste. Hai intenzione di creare parametri o utilizzare invece i campi pubblici?

  • La tua copia non è effettivamente allineata al suo nome "ricorsivo".

+1

"Forse intendevi chiamarlo da Main() invece di dichiarare un sovraccarico con due parametri?" - Sembra che sia questa l'intenzione, spiega gli specificatori di tipo mancanti. –

Problemi correlati