⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filewriter.cpp

📁 qt-x11-opensource-src-4.1.4.tar.gz源码
💻 CPP
字号:
/******************************************************************************** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved.**** This file is part of the qt3to4 porting application of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file.  Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#include "filewriter.h"#include <QFile>#include <QFileInfo>#include <QDir>#include <ctype.h>FileWriter *FileWriter::theInstance  = 0;FileWriter *FileWriter::instance(){     if(!theInstance)        theInstance = new FileWriter();        return theInstance;}void FileWriter::deleteInstance(){    if(theInstance) {        delete theInstance;        theInstance=0;    }}FileWriter::FileWriter(OverWriteFiles overWrite, QString overwriteMsg):overWriteFiles(overWrite),overwriteMessage(overwriteMsg){    if(overwriteMessage.isEmpty())       overwriteMessage = "Convert file ";}FileWriter::WriteResult FileWriter::writeFileVerbously(QString filePath, QByteArray contents){    const WriteResult result = writeFile(filePath, contents);    if (result == WriteSucceeded) {        QString cleanPath = QDir::cleanPath(filePath);        printf("Wrote to file: %s \n", QDir::convertSeparators(cleanPath).toLocal8Bit().constData());    }    return result;}FileWriter::WriteResult FileWriter::writeFile(QString filePath, QByteArray contents){    if(filePath.isEmpty())        return WriteFailed;    QString path = QFileInfo(filePath).path();    if (!QDir().mkpath(path)){         printf("Error creating path %s \n", QDir::convertSeparators(path).toLocal8Bit().constData());    }    QString cleanPath = QDir::cleanPath(filePath);    QFile f(cleanPath);    if (f.exists()) {        if (overWriteFiles == DontOverWrite) {            printf("Error writing file %s: It already exists \n",                QDir::convertSeparators(cleanPath).toLatin1().constData());            return WriteFailed;        } else if(overWriteFiles == AskOnOverWrite) {            printf("%s%s? (Y)es, (N)o, (A)ll ", overwriteMessage.toLatin1().constData(),                QDir::convertSeparators(cleanPath).toLatin1().constData());                        char answer = 0;            while (answer != 'y' && answer != 'n' && answer != 'a') {                scanf("%c", &answer);                answer = tolower(answer);            }            if(answer == 'n')                return WriteSkipped;            else if(answer == 'a')                overWriteFiles=AlwaysOverWrite;        }    }    f.open(QFile::WriteOnly);    if (f.isOpen() && f.write(contents) == contents.size())        return WriteSucceeded;    printf("Could not write to to file: %s. Is it write protected?\n",        QDir::convertSeparators(filePath).toLatin1().constData());    return WriteFailed;}/*    Sets the write mode for the file writer. writeMode is one of    DontOverWrite, AlwaysOverWrite, AskOnOverWrite.*/void FileWriter::setOverwriteFiles(OverWriteFiles writeMode){    overWriteFiles = writeMode;}QByteArray detectLineEndings(const QByteArray &array){    if (array.contains("\r\n")) {        return "\r\n";    } else {        return "\n";    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -