я получаю сообщение об ошибке «System.Array не содержит определения для LastWriteTime»

StackOverflow https://stackoverflow.com/questions/4897955

Вопрос

У меня проблема с кодом на C #. Кажется, я не могу заставить работать оператор if. Я думаю, что по какой-то причине он пытается ссылаться на неправильную часть кода.Я проверил, что у меня есть все нужные ссылки и все правильное использование. Я вставил оскорбительный код ниже:

Genracodicetagpre

Любая помощь будет принята с благодарностью.

Это было полезно?

Решение

Вероятно, это то, что вы хотите?

Genracodicetagpre

Другие советы

Ну, fi - это массив, поэтому fi.LastWriteTime.Date == DateTime.Today.Date выдаст эту ошибку.Правильно.

Похоже, вы не используете возвращенные каталоги ни для чего другого, поэтому я не могу предложить «исправление».

Вы вызываете LastWriteTime для массива, а массив не имеет этого свойства.

Вам необходимо вызвать LastWriteTime для членов массива, например

Genracodicetagpre

Или перебрать все файлы:

Genracodicetagpre

Ошибка проста: вы используете LastWriteTime в массиве вместо элемента FileInfo.В коде следует использовать такой индекс:

Genracodicetagpre

замените 0 на номер своего индекса или используйте его в цикле foreach следующим образом:

Genracodicetagpre

Как указывалось ранее, это свойство недопустимо для массива. Просто заключите свой FileInfo в цикл foreach:

родовое слово

Вам нужно

foreach(FileInfo fi in dir.GetFiles("*", SearchOption.AllDirectories))
{
    if (fi.LastWriteTime.Date == DateTime.Today.Date)
    {
        FileInfo[] sourceFiles = source.GetFiles(searchPattern, SearchOption.AllDirectories);
        for (int i = 0; i < sourceFiles.Length; ++i)
            File.Copy(sourceFiles[i].FullName, target.FullName + "\\" + sourceFiles[i].Name, true);
    }
}
.

Вам не хватает цикла for:

Genracodicetagpre
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top