diff options
-rw-r--r-- | Source/cmFileCommand.cxx | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx index 8868812..aa9731b 100644 --- a/Source/cmFileCommand.cxx +++ b/Source/cmFileCommand.cxx @@ -2060,6 +2060,17 @@ cmFileCommand::HandleDownloadCommand(std::vector<std::string> } i++; } + + std::string dir = cmSystemTools::GetFilenamePath(file.c_str()); + if(!cmSystemTools::FileExists(dir.c_str()) && + !cmSystemTools::MakeDirectory(dir.c_str())) + { + std::string errstring = "FILE(DOWNLOAD ) error; cannot create directory: " + + dir + ". Maybe need administrative privileges."; + this->SetError(errstring.c_str()); + return false; + } + std::ofstream fout(file.c_str(), std::ios::binary); if(!fout) { |