News:

Accounts with zero posts and zero activity during the last months will be deleted periodically to fight SPAM!

Main Menu

IO.CreateDirectory does not work

Started by Lazybones, February 27, 2008, 04:13:14 PM

Previous topic - Next topic

Lazybones

Hi there,

I am trying to write a script plugin which copies all project files to a backupdirectory. In this script I want to use the function IO.CreateDirectory in this way:


    local project = GetProjectManager().GetActiveProject();
       
if (!IsNull(project))
        {
local basepath = project.GetCommonTopLevelPath();

if (IO.CreateDirectory(basepath + _T("milestones"), 0755) )
{
::ShowMessage(_T("No Error creating directory"));
}
else
{
::ShowMessage(_T("Error creating directory"));
}
        }


the message "No Error creating directory" is displayed correctly but the directory is not created.

Is there any mistake in my script?

I am using WinXP and CodeBlocks svn-build 4898.

Thanks for your help!
Sven

thomas

Doesn't look like there is a mistake. I don't see a mistake in reporting failure to create a directory either, however.
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

Lazybones

I had to replace the Windows-Backslashes in the directory by slashes, then creating the directory worked fine:

local basepath = project.GetCommonTopLevelPath();
local milestonepath = basepath + _T("milestones");
milestonepath.Replace(_T("\\"), _T("/"));

if (IO.CreateDirectory(milestonepath, 0755) )
...

Maybe there is still a bug?

thomas

Hmm.. that is funny, this shouldn't be necessary...
That may be a wxWidgets bug. The application calls wxFileName::Normalize, which should whack slashes/backslashes and every other path component so it works, but apparently it doesn't... :(
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."