PAL11238: Crash in ExportMED.

This commit is contained in:
jfa 2006-01-13 15:31:06 +00:00
parent f6c93f2e09
commit b3c1fef0ed

View File

@ -1095,29 +1095,16 @@ static void PrepareForWriting (const char* file)
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();
}
}
}