home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.lang.visual.basic      MS Visual Basic discussions, NOT dot-net      10,840 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 8,994 of 10,840   
   J French to All   
   Re: Existing directory   
   21 Nov 04 13:11:01   
   
   From: erewhon@nowhere.uk   
      
   On Sun, 21 Nov 2004 09:29:08 GMT, "Bo Wisén"    
   wrote:   
      
   >If I want to decide if a file exists I can use 'if   
   >dir("c:\test1\test2\testfile.txt")="testfile.txt"'.   
      
   No you don't - that is horrible   
   - and very likely to give you problems   
      
   >But now I want my application to decide if a directory exists and, if not,   
   >create it. Maybe there's a hard way with an error handler searching for   
   >error codes but is there a simplier way?   
      
   You'll find what you need in here   
      
   ' ---   
   Function FileExists(Fle$) As Boolean   
       Dim Q%   
       On Error Resume Next   
       Q = GetAttr(Fle$)   
       If Err = 0 Then   
          If (Q And vbDirectory) = 0 Then   
             FileExists = True   
          End If   
       End If   
       Err.Clear   
   End Function   
      
   ' ---   
   Function DirExists(ADir$) As Boolean   
       Dim Q%   
       On Error Resume Next   
       Q = GetAttr(ADir$)   
       If Err = 0 Then   
          If (Q And vbDirectory) = vbDirectory Then   
             DirExists = True   
          End If   
       End If   
       Err.Clear   
   End Function   
      
      
   '   
   #########################################################################   
   '   
   '  C:\DEV\USLIB\USLIB.BAS  --> X:\DEV\USLIB   
   '   
   Function ExtractFilePath$(Fle$)   
      
       Dim L9%   
      
       For L9 = Len(Fle$) To 1 Step -1   
           If InStr(":\", Mid$(Fle$, L9, 1)) Then   
              If Mid$(Fle$, L9, 1) = "\" Then   
                 ExtractFilePath$ = Left$(Fle$, L9 - 1)   
              End If   
              If Mid$(Fle$, L9, 1) = ":" Then   
                 ExtractFilePath$ = Left$(Fle$, L9)   
              End If   
              L9 = 1   
           End If   
       Next   
      
   End Function   
   Sub MakeDir(FileSpec$, Erm$)   
       Dim S$   
      
       Erm$ = ""   
       If InStr(FileSpec$, "\") Then   
          S$ = ExtractFilePath(FileSpec$)   
          Call MakeDir(S$, Erm$)   
          If Len(Erm$) = 0 Then   
             If DirExists(FileSpec$) = False Then   
                On Error Resume Next   
                MkDir FileSpec$   
                If Err Then Erm$ = "Error Making " + FileSpec$   
                On Error GoTo 0   
             End If   
          End If   
      End If   
   End Sub   
      
      
   Private Sub Command2_Click()   
     Dim Erm$, FileSpec$   
     ' note the deliberate error   
     FileSpec$ = "c:\t/test\test1\test2"   
     Call MakeDir(FileSpec$, Erm$)   
     MsgBox Erm$   
   End Sub   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca