]> SALOME platform Git repositories - plugins/ghs3dprlplugin.git/commitdiff
Salome HOME
Issue 0020377: [windows] Problems with OSD_File Remove
authorvsr <vsr@opencascade.com>
Thu, 1 Oct 2009 11:13:51 +0000 (11:13 +0000)
committervsr <vsr@opencascade.com>
Thu, 1 Oct 2009 11:13:51 +0000 (11:13 +0000)
src/GHS3DPRLPlugin/GHS3DPRLPlugin_GHS3DPRL.cxx

index bae42d68ea3152fbb341eefb95acbc96104dce40..fefff87b975b86d91d566548f882fbeb381d5819 100755 (executable)
@@ -50,6 +50,7 @@
 #include <SMESH_ControlsDef.hxx>
 
 #include <list>
+#include <Standard_ProgramError.hxx>
 #include <TCollection_AsciiString.hxx>
 #include <TopTools_MapOfShape.hxx>
 #include <TopoDS.hxx>
@@ -66,6 +67,16 @@ extern "C" {
 }
 using namespace med_2_2;*/
 
+static void removeFile( const TCollection_AsciiString& fileName )
+{
+  try {
+    OSD_File( fileName ).Remove();
+  }
+  catch ( Standard_ProgramError ) {
+    MESSAGE("Can't remove file: " << fileName.ToCString() << " ; file does not exist or permission denied");
+  }
+}
+
 //=============================================================================
 GHS3DPRLPlugin_GHS3DPRL::GHS3DPRLPlugin_GHS3DPRL(int hypId, int studyId, SMESH_Gen* gen)
   : SMESH_3D_Algo(hypId, studyId, gen)
@@ -130,7 +141,7 @@ static bool writeGHS3DPRLFiles (const TCollection_AsciiString &  GHS3DPRL_In,
    int ifam=0;
    TCollection_AsciiString namefile(GHS3DPRL_In);
    namefile+=".points";
-   OSD_File(namefile).Remove();
+   removeFile(namefile);
    ofstream theFile;
    theFile.open(namefile.ToCString(),ios::out);
 #ifdef WIN32
@@ -173,7 +184,7 @@ static bool writeGHS3DPRLFiles (const TCollection_AsciiString &  GHS3DPRL_In,
    theFile.close();
 
    namefile=GHS3DPRL_In+".faces";
-   OSD_File(namefile).Remove();
+   removeFile(namefile);
    theFile.open(namefile.ToCString(),ios::out);
 #ifdef WIN32
    Ok=theFile->is_open();
@@ -510,7 +521,7 @@ bool GHS3DPRLPlugin_GHS3DPRL::Compute(SMESH_Mesh& theMesh,
       cout<<"GHS3DPRL command : "<<run_GHS3DPRL.ToCString()<<endl;
       cout<<"Write files .faces .point ...";
       GHS3DPRL_Out = path + casenamemed;
-      OSD_File( GHS3DPRL_Outxml ).Remove(); //only the master xml file
+      removeFile( GHS3DPRL_Outxml ); //only the master xml file
       Ok=writeGHS3DPRLFiles(GHS3DPRL_In, meshDS, aSmdsToGHS3DPRLIdMap, aGHS3DPRLIdToNodeMap);
       if (Ok) {cout<<" ...done\n";}
       else {