Два важных момента здесь ..
возможность ошибки в тех строках, которые я упомянул в вопросе
ошибки: Индекс находился вне границ массива
Позволяет рассказать о 1-м:
Многие говорили, что ошибка на этих строках не может быть возможной, и я думал, что при написании кода сначала, но получил ошибку, которая показывалась в журналах.
Затем я прочитал документацию о системная функцияGetFileInfo()
.
Что они говорят, эта функция дает информацию о файле, в системе которой «обналичен» в своей памяти, system does this cashing periodically
.
Теперь просто подумайте, система просто обналичила информацию о файловой системе в своей памяти, теперь вы создали файл и что-то записали в файле и вызвали функцию GetFileInfo()
.
Видел проблему? См., Когда вы вызываете функцию GetFileInfo()
, в системе нет даже файла, обналиченного в памяти. Таким образом, мы получаем здесь, и когда вы пытаетесь получить LastWriteTime()
нулевого объекта, здесь система выдает исключение.
Решение: Я поставил пустой чек, используя в то время как петля на объекте FILEINFO, что в коде PdfFileInfo
(да и эта проблема была протестирована и решена .... :))
сейчас talk about 2nd:
Код, указанный в вопросе, не был в блоке try, поэтому любое вызванное этим функциональным блоком исключение было получено в вызывающей функции.Здесь вызывающая функция разрешила это исключение по-своему и выбрала исключение «Индекс был за пределами массива», который был релевантен для функции вызова, но не отразил фактическое исключение, вызванное GetFileInfo()
.
Решение: поместить этот блок кода в примерочных поймать блок
Спасибо за все комментарии и обсуждения ... :)!
Я предполагаю, что вы не получите исключение в обеих строках, так где именно оно поднято? Опубликуйте стек. –
Когда я добавляю эти две строки, PdfFileInfo = FileIO.FileSystem.GetFileInfo (strPdfFileName) PdfModificationTime = PdfFileInfo.LastWriteTime() это дает мне исключение –
Я не могу получить stacktrace по некоторым причинам (так что я застрял на самом деле, я знаю это ошибка времени выполнения), может ли GetFileInfo() возвращать значение null, даже если файл существует? –