class FileStream::FileStreamPrivate
{
public:
- FileStreamPrivate(FileName fileName);
+ FileStreamPrivate(FileName fileName, bool openReadOnly);
FILE *file;
static const uint bufferSize = 1024;
};
-FileStream::FileStreamPrivate::FileStreamPrivate(FileName fileName) :
+FileStream::FileStreamPrivate::FileStreamPrivate(FileName fileName, bool openReadOnly) :
file(0),
name(fileName),
readOnly(true),
if(wcslen((const wchar_t *) fileName) > 0) {
- file = _wfopen(name, L"rb+");
-
- if(file)
- readOnly = false;
- else
+ if(openReadOnly)
file = _wfopen(name, L"rb");
+ else {
+ file = _wfopen(name, L"rb+");
+
+ if(file)
+ readOnly = false;
+ else
+ file = _wfopen(name, L"rb");
+ }
if(file)
return;
#endif
- file = fopen(name, "rb+");
-
- if(file)
- readOnly = false;
- else
+ if(openReadOnly)
file = fopen(name, "rb");
+ else {
+ file = fopen(name, "rb+");
+
+ if(file)
+ readOnly = false;
+ else
+ file = fopen(name, "rb");
+ }
if(!file)
{
// public members
////////////////////////////////////////////////////////////////////////////////
-FileStream::FileStream(FileName file)
+FileStream::FileStream(FileName file, bool openReadOnly)
{
- d = new FileStreamPrivate(file);
+ d = new FileStreamPrivate(file, openReadOnly);
}
FileStream::~FileStream()
* Construct a File object and opens the \a file. \a file should be a
* be a C-string in the local file system encoding.
*/
- FileStream(FileName file);
+ FileStream(FileName file, bool openReadOnly = false);
/*!
* Destroys this FileStream instance.