ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   How to check drive exist or not using FileSystemObject (https://www.excelbanter.com/excel-programming/380152-how-check-drive-exist-not-using-filesystemobject.html)

moonhk

How to check drive exist or not using FileSystemObject
 
Dear Reader


How to check drive exist or not using FileSystemObject ?

Private Sub cmdSelectName_Click()
Dim myFileName As Variant
Dim FileObj As New FileSystemObject
Dim loDriver As String
Dim loFolder As String
Dim loFilename As String
On Error Resume Next
loDriver = VBA.Trim(VBA.Left(txtfilename.Value, 2))
'~~ Check Drive exist of not

'~~ Change Drive
VBA.ChDrive (loDriver)
loFilename = FileObj.GetFileName(txtfilename.Value) '~~ Return
file name
If VBA.InStr(1, txtfilename.Value, loFilename, vbTextCompare) 0
Then
loFolder = VBA.Left(txtfilename, VBA.InStr(1,
txtfilename.Value, loFilename, vbTextCompare) - 2)
End If

If FileObj.FolderExists(loFolder) Then
VBA.ChDir (loFolder)
End If
On Error GoTo 0
myFileName = Application.GetOpenFilename(filefilter:="Prn Files,
*.PRN", _
Title:="Pick a File")

If myFileName = False Then
'~~ MsgBox "Ok, try later" '~~user select cancel
Exit Sub
Else
txtfilename.Value = myFileName
End If
End Sub


[email protected]

How to check drive exist or not using FileSystemObject
 
Just use VBA and error trapping
loDriver = Left(txtfilename.Value, 1)

On Error Resume Next
ChDrive loDriver

If Err.Number 0 Then
MsgBox "Drive """ & loDriver & """ not available"
Exit Sub
Else
On Error GoTo 0
'Continue
End If

NickHK

moonhk wrote:
Dear Reader


How to check drive exist or not using FileSystemObject ?

Private Sub cmdSelectName_Click()
Dim myFileName As Variant
Dim FileObj As New FileSystemObject
Dim loDriver As String
Dim loFolder As String
Dim loFilename As String
On Error Resume Next
loDriver = VBA.Trim(VBA.Left(txtfilename.Value, 2))
'~~ Check Drive exist of not

'~~ Change Drive
VBA.ChDrive (loDriver)
loFilename = FileObj.GetFileName(txtfilename.Value) '~~ Return
file name
If VBA.InStr(1, txtfilename.Value, loFilename, vbTextCompare) 0
Then
loFolder = VBA.Left(txtfilename, VBA.InStr(1,
txtfilename.Value, loFilename, vbTextCompare) - 2)
End If

If FileObj.FolderExists(loFolder) Then
VBA.ChDir (loFolder)
End If
On Error GoTo 0
myFileName = Application.GetOpenFilename(filefilter:="Prn Files,
*.PRN", _
Title:="Pick a File")

If myFileName = False Then
'~~ MsgBox "Ok, try later" '~~user select cancel
Exit Sub
Else
txtfilename.Value = myFileName
End If
End Sub



moonhk

How to check drive exist or not using FileSystemObject
 
Any other suggestion ?

wrote:
Just use VBA and error trapping
loDriver = Left(txtfilename.Value, 1)

On Error Resume Next
ChDrive loDriver

If Err.Number 0 Then
MsgBox "Drive """ & loDriver & """ not available"
Exit Sub
Else
On Error GoTo 0
'Continue
End If

NickHK

moonhk wrote:
Dear Reader


How to check drive exist or not using FileSystemObject ?

Private Sub cmdSelectName_Click()
Dim myFileName As Variant
Dim FileObj As New FileSystemObject
Dim loDriver As String
Dim loFolder As String
Dim loFilename As String
On Error Resume Next
loDriver = VBA.Trim(VBA.Left(txtfilename.Value, 2))
'~~ Check Drive exist of not

'~~ Change Drive
VBA.ChDrive (loDriver)
loFilename = FileObj.GetFileName(txtfilename.Value) '~~ Return
file name
If VBA.InStr(1, txtfilename.Value, loFilename, vbTextCompare) 0
Then
loFolder = VBA.Left(txtfilename, VBA.InStr(1,
txtfilename.Value, loFilename, vbTextCompare) - 2)
End If

If FileObj.FolderExists(loFolder) Then
VBA.ChDir (loFolder)
End If
On Error GoTo 0
myFileName = Application.GetOpenFilename(filefilter:="Prn Files,
*.PRN", _
Title:="Pick a File")

If myFileName = False Then
'~~ MsgBox "Ok, try later" '~~user select cancel
Exit Sub
Else
txtfilename.Value = myFileName
End If
End Sub



Jim Cone

How to check drive exist or not using FileSystemObject
 
From the Scripting Runtime v5.6 help file...

Function ReportDriveStatus(drv)
Dim fso, msg
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.DriveExists(drv) Then
msg = ("Drive " & UCase(drv) & " exists.")
Else
msg = ("Drive " & UCase(drv) & " doesn't exist.")
End If
ReportDriveStatus = msg
End Function
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware


"moonhk"
wrote in message
Any other suggestion ?


Chip Pearson

How to check drive exist or not using FileSystemObject
 
You could do with a a variety of API calls, but the simplest way is to try
to ChDrive to the drive in question and test for an error:

Dim SaveDir As String
SaveDir = CurDir ' save CurDir to restore defaults
On Error Resume Next
ChDrive "Z:\" ' test for drive 'Z'
If Err.Number < 0 Then
Debug.Print "Drive does not exist"
Else
Debug.Print "Drive exists."
End If
ChDrive SaveDir
ChDir SaveDir



--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
(email address is on the web site)

"moonhk" wrote in message
ups.com...
Dear Reader


How to check drive exist or not using FileSystemObject ?

Private Sub cmdSelectName_Click()
Dim myFileName As Variant
Dim FileObj As New FileSystemObject
Dim loDriver As String
Dim loFolder As String
Dim loFilename As String
On Error Resume Next
loDriver = VBA.Trim(VBA.Left(txtfilename.Value, 2))
'~~ Check Drive exist of not

'~~ Change Drive
VBA.ChDrive (loDriver)
loFilename = FileObj.GetFileName(txtfilename.Value) '~~ Return
file name
If VBA.InStr(1, txtfilename.Value, loFilename, vbTextCompare) 0
Then
loFolder = VBA.Left(txtfilename, VBA.InStr(1,
txtfilename.Value, loFilename, vbTextCompare) - 2)
End If

If FileObj.FolderExists(loFolder) Then
VBA.ChDir (loFolder)
End If
On Error GoTo 0
myFileName = Application.GetOpenFilename(filefilter:="Prn Files,
*.PRN", _
Title:="Pick a File")

If myFileName = False Then
'~~ MsgBox "Ok, try later" '~~user select cancel
Exit Sub
Else
txtfilename.Value = myFileName
End If
End Sub




Dana DeLouis

How to check drive exist or not using FileSystemObject
 
How to check drive exist or not using FileSystemObject ?

This idea uses the "DriveExists" method.

Function FileExistsQ(sFilePath As String) As Boolean
With CreateObject("Scripting.FileSystemObject")
FileExistsQ = .DriveExists(.GetDriveName(sFilePath))
End With
End Function

Sub TestIt()
Debug.Print FileExistsQ("C:\Windows")
Debug.Print FileExistsQ("A:\Windows")
Debug.Print FileExistsQ("D:\")
End Sub

Note the following when testing something like an A: Drive:
'A' might exist, but it is not "Ready" because it lacks a Disk.
You may want to include an "IsReady" to make sure it has a Disk.
--
HTH :)
Dana DeLouis
Windows XP & Office 2003


"moonhk" wrote in message
ups.com...
Dear Reader


How to check drive exist or not using FileSystemObject ?

Private Sub cmdSelectName_Click()
Dim myFileName As Variant
Dim FileObj As New FileSystemObject
Dim loDriver As String
Dim loFolder As String
Dim loFilename As String
On Error Resume Next
loDriver = VBA.Trim(VBA.Left(txtfilename.Value, 2))
'~~ Check Drive exist of not

'~~ Change Drive
VBA.ChDrive (loDriver)
loFilename = FileObj.GetFileName(txtfilename.Value) '~~ Return
file name
If VBA.InStr(1, txtfilename.Value, loFilename, vbTextCompare) 0
Then
loFolder = VBA.Left(txtfilename, VBA.InStr(1,
txtfilename.Value, loFilename, vbTextCompare) - 2)
End If

If FileObj.FolderExists(loFolder) Then
VBA.ChDir (loFolder)
End If
On Error GoTo 0
myFileName = Application.GetOpenFilename(filefilter:="Prn Files,
*.PRN", _
Title:="Pick a File")

If myFileName = False Then
'~~ MsgBox "Ok, try later" '~~user select cancel
Exit Sub
Else
txtfilename.Value = myFileName
End If
End Sub




Dana DeLouis

How to check drive exist or not using FileSystemObject
 
How to check drive exist ...

Ahhh! I'd like to change the name of that function.

Function DriveExistsQ(sFilePath As String) As Boolean
With CreateObject("Scripting.FileSystemObject")
DriveExistsQ = .DriveExists(.GetDriveName(sFilePath))
End With
End Function

--
Dana DeLouis
Windows XP & Office 2003


"Dana DeLouis" wrote in message
...
How to check drive exist or not using FileSystemObject ?


This idea uses the "DriveExists" method.

Function FileExistsQ(sFilePath As String) As Boolean
With CreateObject("Scripting.FileSystemObject")
FileExistsQ = .DriveExists(.GetDriveName(sFilePath))
End With
End Function

Sub TestIt()
Debug.Print FileExistsQ("C:\Windows")
Debug.Print FileExistsQ("A:\Windows")
Debug.Print FileExistsQ("D:\")
End Sub

Note the following when testing something like an A: Drive:
'A' might exist, but it is not "Ready" because it lacks a Disk.
You may want to include an "IsReady" to make sure it has a Disk.
--
HTH :)
Dana DeLouis
Windows XP & Office 2003


"moonhk" wrote in message
ups.com...
Dear Reader


How to check drive exist or not using FileSystemObject ?

Private Sub cmdSelectName_Click()
Dim myFileName As Variant
Dim FileObj As New FileSystemObject
Dim loDriver As String
Dim loFolder As String
Dim loFilename As String
On Error Resume Next
loDriver = VBA.Trim(VBA.Left(txtfilename.Value, 2))
'~~ Check Drive exist of not

'~~ Change Drive
VBA.ChDrive (loDriver)
loFilename = FileObj.GetFileName(txtfilename.Value) '~~ Return
file name
If VBA.InStr(1, txtfilename.Value, loFilename, vbTextCompare) 0
Then
loFolder = VBA.Left(txtfilename, VBA.InStr(1,
txtfilename.Value, loFilename, vbTextCompare) - 2)
End If

If FileObj.FolderExists(loFolder) Then
VBA.ChDir (loFolder)
End If
On Error GoTo 0
myFileName = Application.GetOpenFilename(filefilter:="Prn Files,
*.PRN", _
Title:="Pick a File")

If myFileName = False Then
'~~ MsgBox "Ok, try later" '~~user select cancel
Exit Sub
Else
txtfilename.Value = myFileName
End If
End Sub







All times are GMT +1. The time now is 08:53 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com