RealFlare Ответов: 2

Заставить код прекратить попытки, если файл не существует?


Итак, это мой код:
My.Computer.FileSystem.RenameFile("C:\j\WindowsApplication1.exe", String.Format("{0}.exe", Path.GetRandomFileName().Replace(".", String.Empty)))
который я написал в Form_Load. Этот код дает моему приложению случайное имя файла. Когда я открываю приложение, я получаю ошибку. Ошибка возникает из-за того, что мое приложение продолжает пытаться переименовать файл, но не может найти его, так как имя файла изменилось на случайное имя. Как я могу заставить файл прекратить попытки переименовать файл, если путь не существует?

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

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

2 Ответов

Рейтинг:
15

OriginalGriff

Попробуй:

Dim newName As String = String.Format("{0}.exe", Path.GetRandomFileName().Replace(".", ""))
Dim oldName As String = "C:\j\WindowsApplication1.exe"
If File.Exists(oldName) Then
	File.Move(oldName, newName)
End If


[no name]

Спасибо за помощь и ответ! :)

OriginalGriff

Пожалуйста!

Рейтинг:
11

Atlapure Ambrish

Как вы уже упоминали, я предполагаю, что ваш код работает так, как ожидалось, проблема только в том, что он все еще пытается переименовать, даже если путь существует. Учитывая это, просто добавьте нижеприведенную проверку перед переименованием.

Если Файл.Существует(имя файла)

заключите ваш код в данном случае условие.


[no name]

Эй, я не понимаю, куда мне вставить файл If.Существует (имя файла), можете ли вы дать мне свой источник в моем источнике? Потому что я получаю ошибки

Atlapure Ambrish

Если Файл.Существует("C:\j\WindowsApplication1.exe")
{
Мой.Компьютер.файловая система.Переименовать Файл("C:\j\WindowsApplication1.exe",
Строка.Формат("{0}.EXE-файл", путь.GetRandomFileName().Заменить (""., Строку.Пустой)))
}

[no name]

Спасибо за помощь и ответ! :)

Atlapure Ambrish

Добро пожаловать!

Пожалуйста, не голосуйте за ответ, если вы не понимаете, задавайте вопросы.