2013-03-01 1 views
2

Не уверен, что это действительно просто, что я не заметил. Или просто простая попытка/улов (я думаю, скорее всего).Могу ли я остановить мой текстовый ящик при сбое при загрузке слишком большого количества данных?

У меня есть текстовое поле на форме. Он принимает данные из другого текстового файла, который очень велик (позволяет предположить 1Mb), и во многих случаях он может его принять, но в некоторых случаях программа вылетает при загрузке файла.

Как я могу справиться с этим?

+2

Проверьте размер файла, прежде чем загружать его в свой текстовый блок. –

ответ

2

Перед загрузкой в ​​текстовое поле вы можете попробовать прочитать размер файла текстового файла. Если длина файла больше, чем емкость текстового поля, вы можете запретить заполнение текстового поля.

Для определения размера текстового файла вы можете использовать функцию File.ReadAllLines.

Dim AppDataLocation As String = "C:\Files\TestFiles\" 

    Dim sourceDirectoryInfo As New System.IO.DirectoryInfo(AppDataLocation) 

    For Each fileSystemInfo As System.IO.FileSystemInfo In _ 
         SourceDirectoryInfo.GetFileSystemInfos 
     Dim FileText As String = System.IO.File.ReadAllText _ 
         (AppDataLocation & fileSystemInfo.Name)   
    Next 

В качестве альтернативы, вы можете использовать FileInfo.Length, как показано в этом примере here.

Dim file As New FileInfo("file.txt") 
Dim sizeInBytes As Long = file.Length 
Смежные вопросы