c#标识符预计?

时间:2009-08-04 00:07:18

标签: c#

我正在尝试创建一个程序,将所有文件从一个目录复制到另一个目录。但我正在运行一个基本问题。它说,当我尝试在第52行编译时,标识符会被预期。

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
    var dirInfo = new DirectoryInfo(origDir);

    //retrieve all the _fileNames in the original directory
    var 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))
        {
            var origFile = new FileInfo(file);
            var 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

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

4 个答案:

答案 0 :(得分:19)

您没有在此处为参数列表提供类型标识符

static void RecursiveCopy(origDir, destDir)

应该是

static void RecursiveCopy(string origDir, string destDir)

答案 1 :(得分:4)

您的方法RecursiveCopy列出了两个没有其类型的参数。它应该是这样的:

static void RecursiveCopy(string origDir, string destDir)

答案 2 :(得分:2)

这是你的问题:

static void RecursiveCopy(origDir, destDir)

您没有指定参数的类型,您可能需要以下内容:

static void RecursiveCopy(string origDir, string destDir)

然而,我注意到还有更多问题。你可能还在继续研究这些问题,但是从你发布的内容开始:

  • 您永远不会调用RecursiveCopy方法。也许您打算Main() 调用它而不是用两个参数声明重载?

  • 您声明了两个公共字段origDirdestDir,但从未使用过它们。而是在RecursiveCopy()中创建两个局部变量,然后使用它们。 您打算创建参数还是使用公共字段?

  • 您的副本实际上并非属于“递归”的名称。

答案 3 :(得分:1)

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

static void RecursiveCopy(origDir, destDir)

static void RecursiveCopy(String origDir, String destDir)

一切都很好。