Как я могу вызвать класс для запуска из program.cs в моей форме. - PullRequest
0 голосов
/ 05 февраля 2011

У меня проблемы с получением моего класса из program.cs для запуска в form.cs, когда я запрашиваю его.Я пробовал числовые методы, но они, похоже, не работают, я использовал метод, который я использовал для отправки переменной между двумя файлами, и он не работал, и я искал, но не понимаю, что такое кодделать или где его поставить.Я хочу, чтобы он запустил этот класс в фоновом режиме, но метод переменной, который мне показывали ранее, не работает для класса.

вот класс, который я хочу запустить

public static class DirectoryInfoExtensions
{

     //Copies all files from one directory to another.
    public static void CopyTo(this DirectoryInfo source, string destDirectory, bool recursive)
    {
        if (source == null)
           throw new ArgumentNullException("source");
        if (destDirectory == null)
            throw new ArgumentNullException("destDirectory");

        // If the source doesn't exist, we have to throw an exception.
        if (!source.Exists)
           throw new DirectoryNotFoundException("Source directory not found: " + source.FullName);
       //  Compile the target.
        DirectoryInfo target = new DirectoryInfo(destDirectory);
         //If the target doesn't exist, we create it.
        if (!target.Exists)
            target.Create();

        // Get all files and copy them over.
       foreach (FileInfo file in source.GetFiles())
        {
            file.CopyTo(Path.Combine(target.FullName, file.Name), true);
        }

        // Return if no recursive call is required.
        if (!recursive)
            return;

        // Do the same for all sub directories.
        foreach (DirectoryInfo directory in source.GetDirectories())
       {
          CopyTo(directory, Path.Combine(target.FullName, directory.Name), recursive);
      }
   }
}

вот где я хочу запустить его в form.cs

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
    {

    }

Ответы [ 2 ]

1 голос
/ 05 февраля 2011

Вы просто хотите запустить метод CopyTo? Это должно быть достаточно просто. Вы можете вызвать его явно:

DirectoryInfoExtensions.CopyTo(source, "C:\DestinationDirectory", true);

... или как метод расширения:

source.CopyTo("C:\DestinationDirectory", true);

Конечно, если ваши расширения не находятся в том же пространстве имен, что и ваш класс формы, вам нужно убедиться, что вы используете пространство имен, в котором находится DirectoryInfoExtensions, поместив что-то вроде этого в верхней части вашего файла:

using Utilities; // replace Utilities with whatever namespace DirectoryInfoExtensions is in

И вам понадобится переменная source типа DirectoryInfo.

var source = new DirectoryInfo("C:\SourceDirectory");
0 голосов
/ 05 февраля 2011

Это должно работать:

DirectoryInfo.CopyTo("<source folder>, "<target folder>", true)

Разве это не работает таким образом? Какую ошибку вы видите?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...