Member 13242613 Ответов: 1

Есть ли способ назначить путь к файлу переменной при его открытии без использования openfiledialog?


У меня есть несколько строк кода из примера проекта.

Function md5_hash(ByVal file_name As String)
        Return hash_generator("md5", file_name)
    End Function

    Function hash_generator(ByVal hash_type As String, ByVal file_name As String)
        Dim hash
        hash = MD5.Create

        Dim hashValue() As Byte

        Dim filestream As FileStream = File.OpenRead(file_name)
        filestream.Position = 0
        hashValue = hash.ComputeHash(filestream)
        Dim hash_hex = PrintByteArray(hashValue)
        filestream.Close()

        Return hash_hex
    End Function


    Private Sub BunifuThinButton21_Click(sender As Object, e As EventArgs) Handles BunifuThinButton21.Click
    Dim path As String = OpenFileDialog1.FileName
    Dim sample As String
                sample = md5_hash(path)
End Sub

Как вы можете видеть в этом коде, OpenFileDialog был использован для объявления пути к файлу, который проверяется, чтобы увидеть, имеет ли он хэш MD5, соответствующий базе данных хэшей MD5.

Теперь в моей программе есть FileSystemWatcher, который должен отслеживать все файлы, открываемые пользователем, но я не могу создать эту функцию, потому что не уверен, есть ли способ объявить файл для "пути", когда он открывается.

Как вы это делаете?

Оставьте любые вопросы ниже, и я сделаю все возможное, чтобы поговорить с вами об этом. Я всего лишь новичок в этом деле. VB.net поэтому я изо всех сил старался найти решение этой проблемы.

Что я уже пробовал:

Задавайте вопросы на других сайтах.

1 Ответов

Рейтинг:
1

OriginalGriff

Посмотрите на документацию: Класс FileSystemWatcher (System.IO)[^] - он включает в себя пример кода, который использует измененное событие и извлекает путь измененного файла в обработчике!


Member 13242613

Ладно, спасибо, я уже посмотрел. Я ненавижу задавать такие вопросы, но не могли бы вы вставить их в мой код? Вот мой код FileSystemWatcher:

Private Sub FileSystemWatcher1_Changed(ByVal sender As System.Объект, бывал е как System.IO.FileSystemEventArgs) обрабатывает FileSystemWatcher1.Измененный

Тусклый путь как строка

FileSystemWatcher1.EnableRaisingEvents = True
Тусклый образец в виде строки
sample = md5_hash(путь)

Использование f в качестве System.IO.FileStream = System.IO.File.OpenRead("viruslist.txt")
Использование s в качестве System.IO.StreamReader = новый System.IO.StreamReader(f)
Пока нет s.EndOfStream
Тусклая линия как строка = s.ReadLine

Если (строка = образец) Затем
Обнаружить.Покажите()
Еще

Конец, Если
Конец Пока
Конец Использования
Конец Использования




Конец Подводной Лодки


Эти примеры просто все новые для меня с их кодом. @OriginalGriff

OriginalGriff

Да ладно тебе!
Вы не можете справиться с этим

Дим путь как строки = е.Полный путь

без посторонней помощи?
Я думаю, вам нужно перечитать свои заметки о курсе...

Member 13242613

Извиняюсь. Глупый вопрос.


Однако я добавил некоторые вещи из этого примера, и он говорит, что доступ к "C:\" запрещен.

OriginalGriff

Ну, это меня не удивляет - многие файлы в корне ограничены доступом администратора.

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

Member 13242613

Ладно, сделаем.

Быстрый вопрос, есть ли что-то вроде "каталога".Вкладка OpenRead'? Или "Каталог.ReadFiles"? Я думаю, что на тусклом filestream как FileStream = File.OpenRead(file_name), я могу использовать что-то подобное, чтобы посмотреть в каталоге.

OriginalGriff

https://msdn.microsoft.com/en-us/library/system.io.directory.getfiles(v=против 110).aspx