kdecore Library API Documentation

KSaveFile Class Reference

The KSaveFile class has been made to write out changes to an existing file atomically. More...

#include <ksavefile.h>

List of all members.

Public Methods

 KSaveFile (const QString &filename, int mode=0666)
 ~KSaveFile ()
int status () const
QString name () const
int handle () const
FILE * fstream ()
QFilefile ()
QTextStreamtextStream ()
QDataStreamdataStream ()
void abort ()
bool close ()

Static Public Methods

bool backupFile (const QString &filename, const QString &backupDir=QString::null, const QString &backupExtension=QString::fromLatin1("~"))


Detailed Description

The KSaveFile class has been made to write out changes to an existing file atomically.

This means that EITHER: a) All changes have been written successfully to the file.

b) Some error occurred, no changes have been written whatsoever and the old file is still in place.

Definition at line 41 of file ksavefile.h.


Constructor & Destructor Documentation

KSaveFile::KSaveFile const QString   filename,
int    mode = 0666
 

Creates a new KSaveFile with the given file name.

Parameters:
filename  the path of the file
mode  the mode of the file (see chmod(1))

Definition at line 41 of file ksavefile.cpp.

References KTempFile::create(), QFile::encodeName(), QString::fromLatin1(), KTempFile::handle(), QFileInfo::isSymLink(), QFileInfo::readLink(), KTempFile::setError(), and QFileInfo::setFile().

KSaveFile::~KSaveFile  
 

The destructor closes the file.

You might want to call close() explicitely though, to test whether it worked.

Definition at line 82 of file ksavefile.cpp.

References KTempFile::bOpen, and close().


Member Function Documentation

int KSaveFile::status   const [inline]
 

Returns the status of the file based on errno.

(see errno.h) 0 means OK.

You should check the status after object creation to check whether a file could be created in the first place.

You may check the status after closing the file to verify that the file has indeed been written correctly.

Returns:
the errno status, 0 means ok

Definition at line 68 of file ksavefile.h.

References KTempFile::status().

Referenced by KPalette::save(), and KConfigINIBackEnd::writeConfigFile().

QString KSaveFile::name   const
 

The name of the file as passed to the constructor.

Returns:
The name of the file, or QString::null if opening the file has failed

Definition at line 89 of file ksavefile.cpp.

int KSaveFile::handle   const [inline]
 

An integer file descriptor open for writing to the file.

Returns:
The file descriptor, or a negative number if opening the temporary file failed

Definition at line 83 of file ksavefile.h.

References KTempFile::handle().

Referenced by KConfigINIBackEnd::writeConfigFile().

FILE* KSaveFile::fstream   [inline]
 

A FILE* stream open for writing to the file.

Returns:
FILE* stream open for writing to the file, or 0 if opening the temporary file failed

Definition at line 91 of file ksavefile.h.

References KTempFile::fstream().

Referenced by KConfigINIBackEnd::writeConfigFile().

QFile* KSaveFile::file   [inline]
 

A QFile* open for writing to the file.

Returns:
A QFile open for writing to the file, or 0 if opening the temporary file failed.

Definition at line 99 of file ksavefile.h.

References KTempFile::file().

QTextStream* KSaveFile::textStream   [inline]
 

A QTextStream* open for writing to the file.

Returns:
A QTextStream that is open for writing to the file, or 0 if opening the temporary file failed

Definition at line 107 of file ksavefile.h.

References KTempFile::textStream().

Referenced by KPalette::save().

QDataStream* KSaveFile::dataStream   [inline]
 

A QDataStream* open for writing to the file.

Returns:
A QDataStream that is open for writing to the file, or 0 if opening the file failed

Definition at line 115 of file ksavefile.h.

References KTempFile::dataStream().

void KSaveFile::abort  
 

Aborts the write operation and removes any intermediate files This implies a close.

Definition at line 95 of file ksavefile.cpp.

References KTempFile::close(), and KTempFile::unlink().

Referenced by KConfigINIBackEnd::writeConfigFile().

bool KSaveFile::close  
 

Closes the file and makes the changes definitive.

Returns 'true' is successful, or 'false' if an error has occurred. See status() for details about errors.

Returns:
true if successful, or false if an error has occurred.

Definition at line 102 of file ksavefile.cpp.

References KTempFile::close(), QString::isEmpty(), KTempFile::name(), QDir::rename(), KTempFile::setError(), and KTempFile::unlink().

Referenced by KPalette::save(), KConfigINIBackEnd::writeConfigFile(), and ~KSaveFile().

bool KSaveFile::backupFile const QString   filename,
const QString   backupDir = QString::null,
const QString   backupExtension = QString::fromLatin1("~")
[static]
 

Static method to create a backup file before saving.

You can use this method even if you don't use KSaveFile.

Parameters:
filename  the file to backup
backupDir  optional directory where to save the backup file in. If empty (the default), the backup will be in the same directory as filename.
backupExtension  the extension to append to filename, "~" by default.
Since:
3.2

Definition at line 140 of file ksavefile.cpp.

References QFile::encodeName(), QCString::findRev(), QString::isEmpty(), QString::length(), and QCString::mid().


The documentation for this class was generated from the following files:
KDE Logo
This file is part of the documentation for kdecore Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sun May 16 22:01:30 2004 by doxygen 1.2.15 written by Dimitri van Heesch, © 1997-2003