summaryrefslogtreecommitdiff
authorar <ar>2004-06-19 14:27:36 (UTC)
committer ar <ar>2004-06-19 14:27:36 (UTC)
commit8beb35ab232bf3f20582cf6d1d00681b8dd8e24d (patch) (unidiff)
tree4a1eb02423a1053ec9524bb1544893d0686bfbbd
parent0689d1b607583b9b4ebf55b2180bba99d6008d90 (diff)
downloadopie-8beb35ab232bf3f20582cf6d1d00681b8dd8e24d.zip
opie-8beb35ab232bf3f20582cf6d1d00681b8dd8e24d.tar.gz
opie-8beb35ab232bf3f20582cf6d1d00681b8dd8e24d.tar.bz2
- ignore ENOENT and EAGAIN in renameFile (bug in system?)
- replace system-call "mkdir..." with QDir::mkdir
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--library/filemanager.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/library/filemanager.cpp b/library/filemanager.cpp
index 2e5efdd..fbfa1d9 100644
--- a/library/filemanager.cpp
+++ b/library/filemanager.cpp
@@ -253,10 +253,13 @@ bool FileManager::copyFile( const QString & src, const QString & dest )
253bool FileManager::renameFile( const QString & src, const QString & dest ) 253bool FileManager::renameFile( const QString & src, const QString & dest )
254{ 254{
255 if( rename( QFile::encodeName( src ), QFile::encodeName( dest ) ) == -1); 255 if( rename( QFile::encodeName( src ), QFile::encodeName( dest ) ) == -1);
256 { 256 {
257 qWarning( "problem renaming file %s to %s, errno: %d", src.latin1(), dest.latin1(), errno ); 257 if ( errno != 2 && errno != 11 ) //ignore ENOENT and EAGAIN - bug in system?
258 return false; 258 {
259 qWarning( "problem renaming file %s to %s, errno: %d", src.latin1(), dest.latin1(), errno );
260 return false;
261 }
259 } 262 }
260 return true; 263 return true;
261} 264}
262 265
@@ -310,18 +313,17 @@ bool FileManager::exists( const DocLnk &f )
310 return QFile::exists(f.file()); 313 return QFile::exists(f.file());
311} 314}
312 315
313/*! 316/*!
314 Ensures that the path \a fn exists, by creating required directories. 317 Ensures that the path \a fileName exists, by creating required directories.
315 Returns TRUE if successful. 318 Returns TRUE if successful.
316*/ 319*/
317bool FileManager::ensurePathExists( const QString &fn ) 320bool FileManager::ensurePathExists( const QString &fileName )
318{ 321{
319 QFileInfo fi(fn); 322 QDir directory = QFileInfo( fileName ).dir();
320 fi.setFile( fi.dirPath(TRUE) ); 323 if ( !directory.exists() )
321 if ( !fi.exists() )
322 { 324 {
323 if ( system( ("mkdir -p " + QFile::encodeName( fi.filePath() ) ) ) ) 325 if ( !directory.mkdir( directory.absPath() ) )
324 return FALSE; 326 return FALSE;
325 } 327 }
326 return TRUE; 328 return TRUE;
327} 329}