0

メソッドでコピー中の現在のファイルを表示しようとしています。

コードは次のとおりです。

public static void CopyAll(DirectoryInfo source, DirectoryInfo target)
{
    // Check if the target directory exists, if not, create it.
    if (Directory.Exists(target.FullName) == false)
        Directory.CreateDirectory(target.FullName);

    // Copy each file into it’s new directory.
    foreach (FileInfo fi in source.GetFiles())
    {
        //Line where the error is
        lblBackupStatus.Text = "Copying " + target.FullName.ToString() + fi.Name.ToString(); 

        fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true);
    }

    // Copy each subdirectory using recursion.
    foreach (DirectoryInfo diSourceSubDir in source.GetDirectories())
    {
        DirectoryInfo nextTargetSubDir = target.CreateSubdirectory(diSourceSubDir.Name);
        CopyAll(diSourceSubDir, nextTargetSubDir);
    }
}

私が得ているエラーは次のとおりです。

非静的フィールド、メソッド、またはプロパティにはオブジェクト参照が必要です

静的メソッドから非静的プロパティを呼び出すことについて何かが、それを修正する方法がわかりません。

どんな助けでも大歓迎です!、 ありがとう

4

1 に答える 1

3

おそらく でエラーが発生していると思います"lblBackupStatus.Text = ...

ラベルはクラス インスタンス (「オブジェクト」) に属します。あなたの静的 CopyAll メソッドはそうではありません(「静的」です)。

Q: CopyAll は静的である必要がありますか? そうでない場合は、「静的」を削除することで問題が解決するかどうかを確認してください。

それ以外の場合は、エラーが発生している行を投稿/特定してください。

于 2013-05-06T19:34:18.420 に答える