я получаю сообщение об ошибке «System.Array не содержит определения для LastWriteTime»
-
28-10-2019 - |
Вопрос
У меня проблема с кодом на C #. Кажется, я не могу заставить работать оператор if. Я думаю, что по какой-то причине он пытается ссылаться на неправильную часть кода.Я проверил, что у меня есть все нужные ссылки и все правильное использование. Я вставил оскорбительный код ниже:
GenracodicetagpreЛюбая помощь будет принята с благодарностью.
Решение
Вероятно, это то, что вы хотите?
GenracodicetagpreДругие советы
Ну, fi
- это массив, поэтому fi.LastWriteTime.Date == DateTime.Today.Date
выдаст эту ошибку.Правильно.
Похоже, вы не используете возвращенные каталоги ни для чего другого, поэтому я не могу предложить «исправление».
Вы вызываете LastWriteTime для массива, а массив не имеет этого свойства.
Вам необходимо вызвать LastWriteTime для членов массива, например
GenracodicetagpreИли перебрать все файлы:
Genracodicetagpre Ошибка проста: вы используете LastWriteTime
в массиве вместо элемента FileInfo.В коде следует использовать такой индекс:
замените 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