private sub CreateDirTree(sDir as string) dim s as string dim stmpDir as string = "/"
if sdir begins "/" then sdir = right(sdir,-1) For each s in split(sDir, "/") stmpDir &= s if exist(stmpdir) then continue mkdir stmpdir next catch Print "The directory " & stmpdir & "can't be created" end 2011/6/30 Fabien Bodard <gambas...@gmail.com>: > The FINALLY part is not mandatory. If there is a catch part in the > function, the FINALLY part must precede it. > > http://gambasdoc.org/help/lang/finally > > The second call will be in the catch part not in finally. > > 2011/6/30 Stephen Bungay <sbun...@csolve.net>: >> Hi folks! >> >> Gambas 2.99 >> Fedora 14 >> >> Using mkdir with "catch" and "finally" to create a recursive SUB to >> build a directory structure. >> The harness consists of FormMain with one big-friendly button on it, >> pretty simple. Here is all of the code; >> >> ' Gambas class file >> >> Public Sub _new() >> >> End >> >> Public Sub Form_Open() >> >> End >> >> Private Sub CreateNewOutputFolder(psFolderSpecification As String) >> Dim sFolderSpec As String >> >> sFolderSpec = psFolderSpecification >> >> Mkdir sFolderSpec >> >> Finally >> Mkdir sFolderSpec >> >> Catch >> sFolderSpec = Mid$(psFolderSpecification, 1, >> RInStr(psFolderSpecification, ".") - 1) >> CreateNewOutputFolder(sFolderSpec) >> End >> >> Public Sub Button1_Click() >> >> CreateNewOutputFolder("/home/user/Rumple/Stilskin/Was/Here") >> >> End >> >> >> What I THINK should happen is the initial mkdir should fail, the code >> in "catch" should execute and copy the passed in parameter from position >> 1 to the charcter just prior to the last "/" and then call itself >> passing in the new result as the parameter. When/if that call fails (and >> it should as this folder specification doesn't exist in my home dir) it >> again recurses. This should go on until it reaches the left-most node in >> the directory structure (AFTER the "/home/user"), and THAT one >> ("/home/user/Rumple) should be the first to succeed in being created. >> The call stack should then unwind, and as it does, the previous SUBS on >> the stack should execute their "Finally" section. When the stack has >> completely unwound the directory structure should exist.... only that is >> not what is happening. >> The first Catch doesn't execute (although the directory does not get >> created.. meaning an error did indeed occur) and it skips directly to >> the "finally". When the mkdir in the "finally" is executed (same >> parameter string because we have not yet recursed) the error "File or >> Directory does not exist" pops up on the screen. Well there's the error >> that I expected from the initial mkdir, but the "catch" didn't execute, >> anybody got ideas? >> >> ------------------------------------------------------------------------------ >> All of the data generated in your IT infrastructure is seriously valuable. >> Why? It contains a definitive record of application performance, security >> threats, fraudulent activity, and more. Splunk takes this data and makes >> sense of it. IT sense. And common sense. >> http://p.sf.net/sfu/splunk-d2d-c2 >> _______________________________________________ >> Gambas-user mailing list >> Gambas-user@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/gambas-user >> > > > > -- > Fabien Bodard > -- Fabien Bodard ------------------------------------------------------------------------------ All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-d2d-c2 _______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user