qt初入门2:qt选择一个文件或者目录,获取当前目录,操作文件目录等整理

最近用qt操作文件或者目录的动作比较多,简单整理一下常用的接口,方便回顾。

总的来说,其实就是用文件选择对话框QFileDialog类,以及操作文件信息的QFileInfo类,以及相关QCoreApplication中静态成员函数获取一些信息,qDir类。

1:获取当前目录,一般默认也是当前目录。

void Dialog::on_pbn_getcurdir_clicked()
{
    QString cur_string = QApplication::applicationDirPath(); //可执行文件的目录路径
    QString cur_string1 = QApplication::applicationFilePath(); //可执行文件的路径
    QString cur_dir = QDir::currentPath(); //获取当前工作目录路径  其他获取主目录,临时目录,磁盘列表,求绝对路径

    ui->le_display->append("cur_string:"+cur_string);
    ui->le_display->append("cur_string1:"+cur_string1);
    ui->le_display->append("cur_dir:"+cur_dir);
}

2:可以设置一个目录,下次打开默认基于该目录。

或者保存最后一次用户打开的目录,做使用。

//在打开文件或者目录时  一般可以设置默认打开的目录 这里要借助全局或者成员变量
static QString default_dir = QDir::currentPath();
void Dialog::on_pbn_setdefdir_clicked()
{
    //打开一个目录 父对象指针  标题栏  初始目录
    //DontResolveSymlinks:不解析符号链接,而是直接显示链接的路径。
    //ShowDirsOnly:仅显示目录,过滤掉文件。
    //ReadOnly:只读模式,在对话框中禁止创建新目录。
    default_dir = QFileDialog::getExistingDirectory(this, "选择默认目录",default_dir, QFileDialog::ShowDirsOnly);
    ui->le_display->append("设置默认打开目录为:"+default_dir+",需要存储信息,后面再次使用。");
}

3:选择文件和目录,基于上面设置的默认目录。

void Dialog::on_pbn_file_clicked()
{
    //打开一个文件,借助QFileDialog,目录可以用上面设置的,方便操作
    //父对象 标题栏  初始目录 过滤文件类型
    m_file_name = QFileDialog::getOpenFileName(this, "选择一个文件", default_dir, "Text Files (*.txt);;All Files (*)");
    ui->le_file_name->setText(m_file_name);
    ui->le_display->append("选择一个文件:"+m_file_name);
}

void Dialog::on_pbn_dir_clicked()
{
    m_dir_name = QFileDialog::getExistingDirectory(this, "选择一个目录",default_dir, QFileDialog::ShowDirsOnly);
    ui->le_dir_name->setText(m_dir_name);
    ui->le_display->append("选择一个目录:"+m_dir_name);
}

4:选择一个文件后获取是字符串,获取文件路径目录。

//这里主要借助QFileInfo 类和qDir类
void Dialog::on_pbn_getfile_dir_clicked() //获取已经选择文件的路径
{
    QFileInfo fileinfo(m_file_name); //也可以是一个目录
    QString reall_filedir = fileinfo.dir().absolutePath(); //获取绝对路径
    QString reall_filename = fileinfo.fileName();
    ui->le_display->append("选择文件的目录为:" + reall_filedir);
}

5:选择一个文件后,获取真实文件名等其他方法

#include 
void Dialog::on_pbn_getfile_name_clicked() //获取已经选择文件的实际文件名
{
    QFileInfo fileinfo(m_file_name); //相关文件的操作都是借助于QFileInfo 可以探索其他
    QString reall_filename = fileinfo.fileName();
    ui->le_display->append("选择文件的文件名为:" + reall_filename);
    ui->le_display->append("选择文件的路径为:"+fileinfo.filePath());
    ui->le_display->append("选择文件的绝对路径为:"+fileinfo.absoluteFilePath());
    ui->le_display->append("选择文件的最后修改时间:"+fileinfo.lastModified().toString());
}

6:要生成目标文件,基于选择的文件,做文件名处理。

这里文件的拷贝,重命名等都只是接口

void Dialog::on_pbn_file_add_suffix_clicked()
{
    QFileInfo fileinfo(m_file_name);
    //需要对目录进行处理 比如要生成一个目标文件在源文件基础上加个后缀
    QString dst_filename = fileinfo.dir().absolutePath()+"/"+fileinfo.baseName()+"_后缀"+"."+fileinfo.suffix();
    ui->le_display->append("处理后目标文件为:"+dst_filename);

    //如果要遍历一个目录 可以用QDir类 entryList
}

7:简单运行:

qt初入门2:qt选择一个文件或者目录,获取当前目录,操作文件目录等整理_第1张图片

你可能感兴趣的:(qt相关问题及学习,qt)