summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--library/filemanager.cpp19
1 files changed, 9 insertions, 10 deletions
diff --git a/library/filemanager.cpp b/library/filemanager.cpp
index 47af1c6..2e5efdd 100644
--- a/library/filemanager.cpp
+++ b/library/filemanager.cpp
@@ -28,6 +28,7 @@
/* STD */
#include <stdlib.h>
+#include <errno.h>
#include <sys/stat.h>
/*!
@@ -188,13 +189,13 @@ bool FileManager::copyFile( const AppLnk &src, const AppLnk &dest )
if ( ok )
{
// okay now rename the file...
- if ( !renameFile( fileName.latin1(), dest.file().latin1() ) )
+ if ( !renameFile( fileName, dest.file() ) )
// remove the tmp file, otherwise, it will just lay around...
- QFile::remove( fileName.latin1() );
+ QFile::remove( fileName );
}
else
{
- QFile::remove( fileName.latin1() );
+ QFile::remove( fileName );
}
return ok;
}
@@ -241,9 +242,9 @@ bool FileManager::copyFile( const QString & src, const QString & dest )
destFile.close();
// Set file permissions
struct stat status;
- if( stat( (const char *) src, &status ) == 0 )
+ if( stat( QFile::encodeName( src ), &status ) == 0 )
{
- chmod( (const char *) dest, status.st_mode );
+ chmod( QFile::encodeName( dest ), status.st_mode );
}
return ok;
}
@@ -251,10 +252,9 @@ bool FileManager::copyFile( const QString & src, const QString & dest )
bool FileManager::renameFile( const QString & src, const QString & dest )
{
- QDir dir( QFileInfo( src ).absFilePath() );
- if ( !dir.rename( src, dest ) )
+ if( rename( QFile::encodeName( src ), QFile::encodeName( dest ) ) == -1);
{
- qWarning( "problem renaming file %s to %s", src, dest );
+ qWarning( "problem renaming file %s to %s, errno: %d", src.latin1(), dest.latin1(), errno );
return false;
}
return true;
@@ -320,9 +320,8 @@ bool FileManager::ensurePathExists( const QString &fn )
fi.setFile( fi.dirPath(TRUE) );
if ( !fi.exists() )
{
- if ( system(("mkdir -p "+fi.filePath())) )
+ if ( system( ("mkdir -p " + QFile::encodeName( fi.filePath() ) ) ) )
return FALSE;
}
-
return TRUE;
}