2009-08-04 236 views
6

我正试图创建一个程序来将所有文件从一个目录复制到另一个目录。但我正在处理一个基本问题。它说,预计indentifier当我尝试编译线52c#标识符预计?

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(); 
     } 
    } 
} 

回答

16

你没有给类型标识符的参数列表在这里

static void RecursiveCopy(origDir, destDir) 

应该

static void RecursiveCopy(string origDir, string destDir) 
3

你的方法RecursiveCopy有两个参数没有列出。应该是这样的:

static void RecursiveCopy(string origDir, string destDir) 
0

c您缺少RecursiveCopy方法声明中的参数类型。只要改变

static void RecursiveCopy(origDir, destDir) 

static void RecursiveCopy(String origDir, String destDir) 

所有的罚款。

2

这里是你的问题:

static void RecursiveCopy(origDir, destDir) 

您没有为参数指定类型,也许你想要的以下内容:

static void RecursiveCopy(string origDir, string destDir) 

还有更多的问题,但是,我我注意到了。这是可能的,你还在修这些,但是从您发布的内容:

  • 你永远不打电话给你RecursiveCopy方法。也许你的意思是Main()而不是用两个参数声明过载?

  • 您声明了两个公共字段origDirdestDir,但从未使用它们。相反,您可以在RecursiveCopy()中创建两个本地变量,然后使用它们。 您是否打算创建参数或使用公共字段?

  • 您的副本实际上并非如此,它的名称为“递归”。

+1

“也许你打算从Main()调用它,而不是用两个参数声明一个超载?” - 似乎是这样的意图,解释缺少的类型说明符。 – 2009-08-04 00:50:39