Member 13242613 Ответов: 1

Есть ли способ использовать e.fullpath (как строку) внутри sub, который не имеет/не может его использовать?


У меня есть программа на Visual Basic .Net, который считывает открытый файл, а затем, если этот файл имеет хэш, соответствующий локально размещенной базе данных MD5, появляется окно сообщений со словами "хэши одинаковы!". Проблема в том, что я не могу передать e.FullPath функции, которая генерирует хэши.

Это мой функциональный код.

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

В строке file_name, заключенной в круглые скобки, я хочу использовать e.FullPath из моей Субподрядки FileSystemWatcher1_Changed.

Private Sub FileSystemWatcher1_Changed(ByVal sender As System.Object, ByVal e As System.IO.FileSystemEventArgs) Handles FileSystemWatcher1.Changed
   // code that I don't think is necessary to post.
End Sub

Есть ли какой-нибудь способ передать этот e.FullPath в качестве моего имени файла?

Я не могу найти никаких других источников, чтобы помочь мне.

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

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

1 Ответов

Рейтинг:
2

OriginalGriff

Пожалуйста, перестань гадать! Мышление работает намного лучше...
Конечно, можно - это всего лишь струна, и ничего больше, ты же знаешь!

hash_generator(hashType, e.FullPath)


Member 13242613

Мне так жаль, что я просто очень отчаянно хочу получить эти ответы, я постараюсь перестать спрашивать так много.

OriginalGriff

Дело не в том, что вы задаете слишком много вопросов - вы еще не подошли к порогу помощи вампирам, - а в том, что вы задаете один и тот же вопрос в разных формах и совершенно явно не думаете о том, что делаете. Я не знаю, потому ли это, что вы паникуете, или просто не обратили внимания на основные уроки, когда вы начали этот курс, но эффект тот же самый. Задавать вопросы - это очень медленный способ заставить что-то работать-гораздо быстрее думать о том, что вы делаете, вместо того чтобы бросаться в это и обнаруживать впоследствии, что это не работает, и вы не знаете, почему.

Серьезно: игнорируйте код, который у вас есть, и спросите себя: "Чего я пытаюсь достичь? Что мне нужно знать, чтобы сделать это? Что я теперь знаю? Чему я должен научиться?", а затем спланировать код, спроектировать систему и, наконец, начать кодирование. Честно говоря, это гораздо более быстрый подход к получению рабочего кода, чем прямой запуск и надежда на лучшее! :смеяться:

Member 13242613

:смех: Хорошо, спасибо за объяснение по этому поводу. Прямо сейчас я просто просматриваю свой код, потому что получаю ошибку в моем "hashType, e.FullPath", говорящую о том, что". " - "запятая или ")" ожидается. Просто экспериментирую прямо сейчас. Но не повезло.

OriginalGriff

И вот что я хочу сказать - прекратите экспериментировать! Думайте и планируйте, и все это приходит вместе, без необходимости гадать и бороться, чтобы исправить дерьмо, которое породили догадки.

Member 13242613

Я задумался. Я перепробовал все, что знаю, но не могу найти то, что работает. Мне очень неприятно спрашивать об этом ... но есть какие-нибудь предложения? И, как я работаю, я экспериментирую, пока не получу что-то правильное.

OriginalGriff

Нет, вы не думаете - вы реагируете на свои прошлые ошибки. Это очень отличается от планирования того, что вы собираетесь делать, и исследования того, что вам нужно сделать, чтобы добраться оттуда, где вы находитесь, туда, где вы хотите быть.

И "экспериментируйте, пока я не получу что-то правильное" - это не замена этому, потому что, когда вы получаете "что-то правильное", вы понятия не имеете, почему. И это означает, что вы совершаете одни и те же ошибки снова и снова - что вы и делаете здесь, в этой серии вопросов.
Подумайте об этом: вам дают название компании для интервью: вы прыгаете в машину и отправляетесь, поворачивая направо и налево в качестве эксперимента? Или вы ищете компанию в интернете, получаете адрес, решаете, лучше ли ехать на машине, поезде, автобусе или лететь? Затем поместите адрес в свое приложение satnav и посмотрите, что он предлагает?
Потому что первый подход может привести вас туда в конце концов, если Вам повезет, но не поможет вам каждый день, если вы получите работу, а второй явно будет быстрее и эффективнее!

Как вы думаете, какую стратегию вы используете для кодирования в данный момент? :смеяться:
Вся ваша стратегия развития должна измениться.