Я программирую приложение, которое должно сохранять .txt-файл на ПК пользователя. В настоящее время я использую этот код:Как пропустить недоступные буквы диска
Dim filepath As String = "G:\Username.txt"
If Not System.IO.File.Exists(filepath) Then
System.IO.File.Create(filepath)
End If
И использовал этот код для других локальных дисков, F:\
и E:\
и D:\
. Как в этом примере
Dim filepath2 As String = "D:\Username.txt"
If Not System.IO.File.Exists(filepath2) Then
System.IO.File.Create(filepath2)
End If
Dim filepath4 As String = "F:\Username.txt"
If Not System.IO.File.Exists(filepath4) Then
System.IO.File.Create(filepath4)
End If
Этот код работает, но я столкнулся с проблемой Если пользователь ПК только имеет 2 локальные диски, кроме привода C:\
, таких как G:\
и D:\
. Когда код, который пытается сохранить файл .txt на диске F:\
, код не может быть выполнен с помощью System.IO.DirectoryNotFoundException
. Я хочу каким-то образом пропустить код, если диск недоступен и только выполнить код, когда доступен этот локальный диск (например, F:\
).
Вы видели [ 'DriveInfo.GetDrives()'] (https://msdn.microsoft.com/en-us/library/system.io.driveinfo.getdrives%28v=vs.110% 29.aspx)? –
Примечание: Ваш текущий код * не работает, как ожидалось. Метод 'Create' не только создает файл, но и оставляет его открытым и возвращает объект FileStream, который вы можете использовать для его записи. Когда вы игнорируете возвращенный объект, код оставит файл открытым до тех пор, пока сборщик мусора не удалит объект и не закроет файл. – Guffa
Спасибо, но мне нужен простой код, чтобы пропустить его? –