From: jfa Date: Fri, 13 Jan 2006 15:31:06 +0000 (+0000) Subject: PAL11238: Crash in ExportMED. X-Git-Tag: T2_2_9pre~5 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=b3c1fef0ed18605e7a74e216e6fc58bf2b3f4316;p=modules%2Fsmesh.git PAL11238: Crash in ExportMED. --- diff --git a/src/SMESH_I/SMESH_Mesh_i.cxx b/src/SMESH_I/SMESH_Mesh_i.cxx index 604f3dd0b..d6b5b420d 100644 --- a/src/SMESH_I/SMESH_Mesh_i.cxx +++ b/src/SMESH_I/SMESH_Mesh_i.cxx @@ -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(); } } }