THROW_SALOME_CORBA_EXCEPTION(msg.ToCString(), SALOME::BAD_PARAM);
}
} else {
- // nonexisting file
- TCollection_AsciiString aDirName = aPath.TrekValue(aPath.TrekLength());
- aPath.UpTrek();
- aPath.SetName(aDirName);
- aPath.SetExtension("");
- OSD_Directory aDir (aPath);
- TCollection_AsciiString aFullDirName;
- aPath.SystemName(aFullDirName);
- if (aDir.Exists()) {
- aFile.Reset();
- aFile.Build(OSD_WriteOnly, OSD_Protection());
- if (aFile.Failed()) {
- TCollection_AsciiString msg ("You cannot write to directory ");
- msg += aFullDirName + ".";
- THROW_SALOME_CORBA_EXCEPTION(msg.ToCString(), SALOME::BAD_PARAM);
- } else {
- aFile.Close();
- aFile.Remove();
- }
- } else {
- TCollection_AsciiString msg ("Directory ");
- msg += aFullDirName + " does not exist.";
+ // nonexisting file; check if it can be created
+ aFile.Reset();
+ aFile.Build(OSD_WriteOnly, OSD_Protection());
+ if (aFile.Failed()) {
+ TCollection_AsciiString msg ("You cannot create the file ");
+ msg += aFullName + ". Check the directory existance and access rights.";
THROW_SALOME_CORBA_EXCEPTION(msg.ToCString(), SALOME::BAD_PARAM);
+ } else {
+ aFile.Close();
+ aFile.Remove();
}
}
}