Helpmecodeplz Ответов: 1

Как переместить файл VB.NET


я делаю антивирус и с помощью сканирования в реальном времени диалог показывает когда вирус найден но когда я нажимаю карантин его суппост чтобы переместить файл в папку ЭСТ но

Системы.ИО.Файл.Двигаться(Метка1.Текст, Приложения.StartupPath & " \карантин\")

это не работает, и каталог действительно существует, но с файлом ничего не происходит. заранее спасибо

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

Системы.ИО.Файл.Двигаться(Метка1.Текст, Приложения.StartupPath & " \карантин\")

Thomas Daniels

Что значит "не работает"? Дает ли это ошибку? Или он просто не перемещает файл? И делает файл в Label1.Текст существует?

Helpmecodeplz

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

1 Ответов

Рейтинг:
8

OriginalGriff

Когда вы перемещаете файл, вам нужно указать полное имя файла назначения, а не только папку.
Например:

File.Move(label1.Text, Path.Combine(quarantinePath, Path.GetFileName(label1.Text)))
Всегда используйте путь.Комбинируйте вместо конкатенации-он сортирует конечные обратные косые черты для вас.

Но... причина, по которой я использовал "quarantinePath" в качестве переменной вместо приложения.StartUpPath - это потому, что вы не должны пытаться писать в папку программы приложения - в производстве, которая будет находиться ниже "Program Files", которая доступна только для чтения без прав администратора. В антивирусном приложении это особенно важно, так как вы перемещаете опасные файлы в область, которую Windows ожидает для поиска исполняемых файлов...

Вместо этого используйте" разумную " папку, или каких там довольно много. Это может помочь: Где я должен хранить свои данные?[^]- весь код-это C#, но все это очень простые вещи.