Vb net существует ли файл
Свойство CurrentDirectory получает полное имя текущего каталога
Свойство Drives возвращает все диски компьютера:
Свойство SpecialDirectories получает все специальные каталоге на компьютере типа Program Files, Temp и др.
Метод CopyDirectory копирует один каталог в другой: My.Computer.FileSystem.CopyDirectory("C:\SomeDir1","C:\SomeDir2", True) - последний параметр задает перезапись совпадающих по имени файлов
Метод CopyFile копирует файл: My.Computer.FileSystem.CopyFile("C:\SomeFile.txt","D:\NewFile.txt")
Метод CreateDirectory создает новый каталог: My.Computer.FileSystem.CreateDirectory("C:\SomeFolder")
Метод DeleteDirectory удаляет каталог: My.Computer.FileSystem.DeleteDirectory ("C:\SomeFolder", FileIO.DeleteDirectoryOption.DeleteAllContents)
Метод DeleteFile удаляет файл
Метод DirectoryExists возвращает True, если указанный каталог существует
Метод FileExists возвращает True, если указанный файл существует
Метод FindInFiles возвращает все файлы указанного каталога, в которых был найден определенный текст: My.Computer.FileSystem.FindInFiles("C:\SomeFolder", "текст для поиска", True, FileIO.SearchOption.SearchAllSubDirectories) - здесь третий параметр указывает, что надо учитывать регистр при поиске. Если регистр учитывать не надо, указываем False. А последний параметр позволяет задать поиск также и в подкаталогах.
Метод GetDirectories возвращает список каталогов указанного каталога
Метод GetFiles возвращает список файлов указанного каталога
Метод GetParentPath возвращает полное имя родительского каталога
Метод MoveFile перемещает файл из одного каталога в другой: My.Computer.FileSystem.MoveFile("C:\SomeFile.txt","D:\SomeFile.txt", Treue) - третий параметр позволяет задать перезапись файла, если в другом каталоге уже есть такой файл
Метод MoveDirectory перемещает каталог в другой: My.Computer.FileSystem.MoveDirectory("C:\SomeSolder","D:\NewDir")
Метод RenameDirectory переименовывает каталог
Метод RenameFile переименовывает файл
Метод ReadAllBytes считывает все байты из файла в массив: Dim bytes As Byte() = My.Computer.FileSystem.ReadAllBytes("C:\SomeFile.bin")
Метод ReadAllText считывает весь текст из файла: Dim text As String = My.Computer.FileSystem.ReadAllText("C:\SomeFile.txt")
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Determines whether the specified file exists.
Parameters
The file to check.
Returns
true if the caller has the required permissions and path contains the name of an existing file; otherwise, false . This method also returns false if path is null , an invalid path, or a zero-length string. If the caller does not have sufficient permissions to read the specified file, no exception is thrown and the method returns false regardless of the existence of path .
9 Answers 9
something like this
best to use a workbook variable to provide further control (if needed) of the opened workbook
updated to test that file name was an actual workbook - which also makes the initial check redundant, other than to message the user than the Textbox is blank
I use this function to check for file existence:
Since you have On Error Resume Next , after your main line I would introduce On Error GoTo 0 just to prevent the error from hanging. Anyways, I like this approach as one can check existence of a file without accidentally checking the existence of a folder.
Does this handle the case where fName is neither a file nor a directory? Seems like a combination of @brettdj and iDevlop's answers would be best: IsFile = ((GetAttr(fName) And vbDirectory) <> vbDirectory) And Len(Dir(DirFile)) <> 0
Investigating further, it appears that GetAttr(fName) will raise exception 53 - FileNotFoundException, invoking Resume Next, and IsFile will keep its prior value (False). So your function does handle all cases. I probably won't test it, but it may also run faster than brettdj's since it doesn't invoke Dir, which looks suspiciously like the system command (?). From my C/C++ experience, invoking a system command takes around 1 second, and maybe another second to resume the executable. Excellent! I up-voted your answer previously. I don't see why this is not the top vote getter.
@iDevlop - I have tested the case once again. if an error is received in this function, when we are back to the caller function, we still have that error. (Error 53: File not found)
@ZygD then you can add an err.clear before the end function . Personnally I always clear err before code area where I'll really handle them.
Выборочное включение элементов управления
Добавьте приведенный ниже метод SetEnabled .
Метод SetEnabled включает и отключает элементы управления в зависимости от того, выбран ли элемент в элементе ListBox .
Создайте обработчик событий SelectedIndexChanged для элемента filesListBox , дважды щелкнув элемент управления ListBox в форме.
Добавьте вызов метода SetEnabled в новый обработчик событий filesListBox_SelectedIndexChanged .
Добавьте вызов метода SetEnabled в конце обработчика событий browseButton_Click .
Добавьте вызов метода SetEnabled в конце обработчика событий Form1_Load .
Запустите приложение. Флажок сохранить результаты и кнопка проверить отключены, если элемент не выбран в .
Ниже приведен полный пример.
Полный пример с использованием System.IO
I have this code. It is supposed to check if a file exists and open it if it does. It does work if the file exists, and if it doesn't, however, whenever I leave the textbox blank and click the submit button, it fails. What I want, if the textbox is blank is to display the error message just like if the file didn't exist.
You haven't provided the problem part of the code (ie the Form that contains the Submit button). Can you share your file?
Получение атрибутов файла и содержимого текстового файла
Создайте обработчик событий нажатия Click для кнопки examineButton , дважды щелкнув этот элемент управления в форме.
Добавьте следующий код в обработчик событий Click .
Этот код проверяет, выбран ли элемент в элементе ListBox . Затем он получает запись пути к файлу из элемента ListBox . Метод FileExists позволяет проверить, существует ли файл.
Путь к файлу передается как аргумент методу GetTextForOutput , который добавляется в следующем шаге. Этот метод возвращает строку, содержащую информацию о файле. Информация о файле отображается в элементе MessageBox.
Добавьте приведенный ниже метод GetTextForOutput .
Метод GetFileInfo используется в коде для получения параметров файла. Параметры файла добавляются в StringBuilder.
Метод OpenTextFileReader считывает содержимое файла в StreamReader. Первая строка содержимого файла извлекается из StreamReader и добавляется в StringBuilder .
Выберите файл в ListBox , а затем нажмите кнопку ListBox . В окне MessageBox будет выведена информация о файле.
Остановите работу приложения.
Examples
The following example determines if a file exists.
Примеры
В следующем примере определяется, существует ли файл.
Создание проекта
В меню Файл выберите пункт Создать проект.
Откроется диалоговое окно Создание проекта .
В области Установленные шаблоны разверните узел Visual Basic и выберите элемент Windows. В середине области Шаблоны щелкните Приложение Windows Forms.
В поле имя введите , чтобы задать имя проекта, и нажмите кнопку ОК.
Visual Studio добавит проект в обозреватель решений, после чего откроется конструктор Windows Forms.
Добавьте в форму элементы управления из приведенной ниже таблицы и установите для их свойств соответствующие значения.
Выбор папки и перечисление файлов в ней
Создайте обработчик событий нажатия Click для кнопки browseButton , дважды щелкнув этот элемент управления в форме. Откроется редактор кода.
Добавьте следующий код в обработчик событий Click .
FolderBrowserDialog1.ShowDialog Вызов открывает диалоговое окно FolderBrowserDialog1.ShowDialog . После нажатия пользователем кнопки ОК свойство отправляется в качестве аргумента ListFiles в метод, который добавляется на следующем шаге.
Добавьте приведенный ниже метод ListFiles .
Этот код сперва очищает элемент ListBox.
Затем метод GetFiles возвращает коллекцию строк — по одной для каждого файла в каталоге. Метод GetFiles принимает аргумент шаблона поиска, чтобы извлечь файлы, соответствующие определенному шаблону. В этом примере возвращаются только файлы с расширением TXT.
Строки, возвращаемые GetFiles методом, затем добавляются в GetFiles .
Элемент ListBox содержит список TXT-файлов в выбранной папке.
Остановите работу приложения.
Добавление записи в журнал
В конец обработчика событий examineButton_Click добавьте приведенный ниже код.
Код задает путь к файлу журнала, чтобы файл журнала помещался в тот же каталог, где находится выбранный файл. Запись журнала должна содержать текущие дату и время, а далее информацию о файле.
Метод WriteAllText, которому передается аргумент append со значением True , используется для создания записи в журнале.
Запустите приложение. Перейдите к текстовому файлу, выберите его в ListBox , установите флажок ListBox и нажмите кнопку проверить. Проверьте, добавлена ли запись в файл log.txt .
Остановите работу приложения.
Комментарии
Этот Exists метод не должен использоваться для проверки пути, этот метод просто проверяет, существует ли файл, указанный в path файле. Передача недопустимого пути для Exists возврата false . Чтобы проверить, содержит ли путь недопустимые символы, можно вызвать GetInvalidPathChars метод, чтобы получить недопустимые символы для файловой системы. Можно также создать регулярное выражение, чтобы проверить, является ли путь допустимым для вашей среды. Примеры допустимых путей см. в разделе File.
Чтобы проверить, существует ли каталог, см. раздел Directory.Exists.
Имейте в виду, что другой процесс может сделать что-то с файлом в период между вызовом Exists метода и выполнить другую операцию в файле, например Delete.
Параметр path может указывать относительные или абсолютные сведения о пути. Относительные сведения о пути интерпретируются относительно текущего рабочего каталога. Сведения о получении текущего рабочего каталога см. в разделе GetCurrentDirectory.
Если path описывается каталог, этот метод возвращает false . Конечные пробелы удаляются из path параметра, прежде чем определить, существует ли файл.
Метод Exists возвращается false , если при попытке определить, существует ли указанный файл. Это может произойти в ситуациях, когда возникают исключения, например передача имени файла с недопустимыми символами или слишком много символов, сбой или отсутствующий диск или если вызывающий объект не имеет разрешения на чтение файла.
В этом пошаговом руководстве приводятся основные сведения о файловом вводе-выводе в Visual Basic. В нем описывается создание небольшого приложения, перечисляющего текстовые файлы в каталоге и анализирующего их. Для каждого выбранного текстового файла приложение предоставляет атрибуты файла и первую строку содержимого. Кроме того, предоставляется возможность записать информацию в файл журнала.
Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Персонализация среды IDE.
Использование текущего каталога
Создайте обработчик событий для события Form1_Load , дважды щелкнув форму.
Добавьте в обработчик событий приведенный ниже код.
Этот код задает текущий каталог в качестве каталога по умолчанию для обозревателя папок.
Запустите приложение. При первом нажатии кнопки Обзор открывается диалоговое окно Выбор папки с текущим каталогом.
Остановите работу приложения.
Remarks
The Exists method should not be used for path validation, this method merely checks if the file specified in path exists. Passing an invalid path to Exists returns false . To check whether the path contains any invalid characters, you can call the GetInvalidPathChars method to retrieve the characters that are invalid for the file system. You can also create a regular expression to test the whether the path is valid for your environment. For examples of acceptable paths, see File.
To check if a directory exists, see Directory.Exists.
Be aware that another process can potentially do something with the file in between the time you call the Exists method and perform another operation on the file, such as Delete.
The path parameter is permitted to specify relative or absolute path information. Relative path information is interpreted as relative to the current working directory. To obtain the current working directory, see GetCurrentDirectory.
If path describes a directory, this method returns false . Trailing spaces are removed from the path parameter before determining if the file exists.
The Exists method returns false if any error occurs while trying to determine if the specified file exists. This can occur in situations that raise exceptions such as passing a file name with invalid characters or too many characters, a failing or missing disk, or if the caller does not have permission to read the file.
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Определяет, существует ли заданный файл.
Параметры
Возвращаемое значение
Значение true , если вызывающий оператор имеет требуемые разрешения и path содержит имя существующего файла; в противном случае — false . Этот метод также возвращает false , если path — null , недействительный путь или строка нулевой длины. Если у вызывающего оператора нет достаточных полномочий на чтение заданного файла, исключения не создаются, а данный метод возвращает false вне зависимости от существования path .
Читайте также: