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

index 89c2f30146ba80045cb38ed6c8deaa42e8f4a7e7..0f9c442222dc3f11160da207acab81f52ed9e985 100755 (executable)
@@ -53,8 +53,19 @@ using namespace std;
 #include <SMESH_ControlsDef.hxx>
 
 #include <list>
+#include <Standard_ProgramError.hxx>
 #include <TCollection_AsciiString.hxx>
 
+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)
@@ -122,7 +133,7 @@ static bool writeGHS3DPRLFiles (const TCollection_AsciiString &  GHS3DPRL_In,
    bool Ok;
    TCollection_AsciiString namefile(GHS3DPRL_In);
    namefile+=".points";
-   OSD_File(namefile).Remove();
+   removeFile(namefile);
    ofstream theFile;
    theFile.open(namefile.ToCString(),ios::out);
 #ifdef WIN32
@@ -160,7 +171,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();
@@ -490,7 +501,7 @@ bool GHS3DPRLPlugin_GHS3DPRL::Compute(SMESH_Mesh&          theMesh,
       system( run_nokeep_files.ToCString() ); //clean files
       cout<<"GHS3DPRL command : "<<run_GHS3DPRL<<endl;
 
-      OSD_File( GHS3DPRL_Out ).Remove(); //only the master med file
+      removeFile( GHS3DPRL_Out ); //only the master med file
       Ok=writeGHS3DPRLFiles(GHS3DPRL_In, meshDS, aSmdsToGHS3DPRLIdMap, aGHS3DPRLIdToNodeMap);
 
       //sometimes it is better to wait flushing files on slow filesystem...