본문 바로가기

프로그래밍/시스템

C++ Qt 파일 입출력 , 파일 변화 감지

반응형

# 파일 입출력 , 파일 변화 감지 h

1
2
#include <qfile.h>
#include <QFileSystemWatcher.h>
cs

 

 

파일 존재 여부 체크

1
QFile::exists(path)
cs

true = exists

 

파일 입출력

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void MainWindow::Read(QString path)
{
    QFile file(path); // path 형식 "C://dir//hi.txt"
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        qDebug() << "not open file";
        return;
    } else {
            QTextStream stream(&file);
            qDebug() << stream.readAll();
            file.close();
    }
}
void MainWindow::Write(QString path , QString Data)
{
    QFile file(path);
    if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
    {
        qDebug() << "not open file";
        return;
    } else {
            QTextStream out(&file);
            out << Data;
    }
}
cs

 

 

파일 변화 감지

1
2
3
QFileSystemWatcher *watcher = new QFileSystemWatcher;
    watcher->addPath(path);
    QObject::connect(watcher,SIGNAL(fileChanged(QString)),this,SLOT(showModified(QString)));
cs
▷ Private Slots

1
2
3
4
5
void MainWindow::showModified(const QString &str)
{
      // 파라미터를 사용하지 않을 때 Q_UNUSED(str);
       qDebug() << str << "파일에 접근하였습니다.";
}
cs

※ path 경로에 해당하는 파일을 읽거나 수정하면 슬롯이 열린다.

 

 

파일 사이즈와 포인터 변경

1
2
QFile::resize(path,qint64(0));
QTextStream::seek(0);
cs

Line

1 - resize : 파일 사이즈 0으로 설정

2 - seek  : 파일포인터 위치 조정( 텍스트 입력 포인터를 처음(0)으로 조정 )



파일 , 폴더 경로 얻기 - QFileDialog

1
2
3
4
5
6
7
8
9
// 파일 열기 ,  저장
QString Open_File_Path = QFileDialog::getOpenFileName(0,"Dialog title","Openfile.txt");
QString Save_File_Path = QFileDialog::getSaveFileName(0,"Dialog title","Savefile.txt");
 
// 디렉토리 열기
QString Open_Directory_Path = QFileDialog::getExistingDirectory(this, tr("Open Directory"),
                                                "/home",
                                                QFileDialog::ShowDirsOnly
                                                | QFileDialog::DontResolveSymlinks);
cs





 

 

반응형

'프로그래밍 > 시스템' 카테고리의 다른 글

C++ Qt 메시지박스  (0) 2018.03.15
C++ Qt 정규식  (0) 2018.03.15
C++ Qt TreeWidget  (0) 2018.03.12
C++ Qt 간단한 로그인 폼 만들기  (0) 2018.03.12
jquery 강제 키 입력 트리거  (0) 2017.12.19