2016-12-31 2 views
-2

Привет, я изучаю C#.Невозможно вызвать метод в Main()?

При попытке вызвать мой метод в экземпляре, я не получаю возможность для intellesence и вынужден набирать его.

У меня также есть текущие две ошибок при попытке построить:.

1) "„строка []“не содержит определение для„LastWriteTime“и нет методы расширения„LastWriteTime“принимать первый аргумент type 'string []' может быть найден. "

2). «„MyClass.Move_Modified_Files()“член группы может не обращаться с ссылкой например, квалифицировать его с именем типа вместо»

Любые выводы будут очень признательны!

Вот мой код:

namespace File_Mover 
{ 
    public class MyClass 
    { 
     public static string src = @"C:\Users\Bold Defiance\Desktop\FolderA"; 
     public static string dst = @"C:\Users\Bold Defiance\Desktop\FolderB"; 
     public static string[] files = System.IO.Directory.GetFiles(src, "*.txt"); 

     public static void Move_Modified_Files() 
     { 
      try 
      { 
       if (files.LastWriteTime.Date == DateTime.Today.Date) 
       { 
        File.Move(src, dst); 
        Console.WriteLine("Modified files in {0} were moved to {1}", src, dst); 
       } 
       else 
       { 
        Console.WriteLine("No new or modified files were created today."); 
       } 
      } 
      catch (Exception e) 
      { 
       Console.WriteLine("The process failed: {0}", e.ToString()); 
      } 
     } 
    } 

    class Program 
    { 
     static void Main(string[] args) 
     { 
      MyClass cls = new MyClass(); 
      cls.Move_Modified_Files(); 
     } 
    } 
} 

ответ

1

Чтобы исправить свои ошибки:

1.) System.IO.Directory.GetFiles возвращает массив путей к файлам. Если вы хотите проверить последнее время записи каждого файла, вы можете использовать System.IO.File.GetLastWriteTime(), передавая ему полный путь. Для этого вам придется перебирать массив.

2.) Ваш метод и переменные-члены являются статическими в классе и не обязательно должны быть. Вы должны сделать метод нестационарным, а затем эта ошибка/предупреждение исчезнет.

+0

Также, как это записано, 'File.Move' будет пытаться действовать в каталоге. Если он не генерирует исключение, он переместит только папку в другую. 'DirectoryInfo.EnumerateFiles', вероятно, лучше подходит для возврата объектов FileInfo (для прямого запроса LastWriteTime и доступа к MoveTo) и его ленивой оценки (для больших каталогов в любом случае) – pinkfloydx33

Смежные вопросы