2009-08-04 15 views
6

すべてのファイルをあるディレクトリから別のディレクトリにコピーするプログラムを作成しようとしています。しかし、私は基本的な問題で走っています。私はここにc#識別子が必要ですか?

static void RecursiveCopy(origDir, destDir) 

static void RecursiveCopy(string origDir, string destDir) 

答えて

16

上でコンパイルしようとすると、それは期待indentifier言うRecursiveCopy型なしで2つのパラメータがリストされています。これは、このする必要があります。

static void RecursiveCopy(string origDir, string destDir) 
3

あなたの方法でなければなりませんあなたの引数リストにタイプ識別子を与えていないライン52

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

cYouはRecursiveCopyメソッド宣言のパラメータの型が欠落しています。ただ、

static void RecursiveCopy(String origDir, String destDir) 

static void RecursiveCopy(origDir, destDir) 

を変更し、すべての罰金です。ここで

2

はあなたの問題です:

static void RecursiveCopy(origDir, destDir) 

あなたはおそらく、あなたが次のことを意図し、パラメータの型を指定しない:

static void RecursiveCopy(string origDir, string destDir) 

より多くの問題があります。しかし、ことを私は気づいた。それはあなたがまだこれらに取り組んでいることは可能ですが、あなたが投稿した内容から:

  • をあなたのRecursiveCopyメソッドを呼び出すことはありません。おそらく、あなたはに2つのパラメータで過負荷を宣言するのではなく、Main()から呼び出すことを意味しましたか?

  • 2つのパブリックフィールドorigDirdestDirを宣言しますが、決してそれらを使用しないでください。代わりにRecursiveCopy()に2つのローカル変数を作成し、代わりにこれらを使用します。 パラメータを作成するか、パブリックフィールドを代わりに使用しましたか?

  • あなたのコピーは実際には "再帰的"という名前には当てはまりません。

+1

"おそらく、2つのパラメータで過負荷を宣言するのではなく、Main()から呼び出すことを意図していましたか? - それが意図であるように見え、欠落している型指定子を説明します。 –

関連する問題