一、此工程实现获取当前工程目录、获取指定目录下的所有文件名、获取系统当前时间、获取自1970.1.1日以来到当前时间的毫秒数、打开选择目录的对话框、打开选择目录的对话框、打开选择文件路径的对
二、代码实现如下:
//1、获取Windows下的各种系统路径,其中MARK是我的电脑名
/*
QStandardPaths::DesktopLocation, "C:/Users/MARK/Desktop"
QStandardPaths::DocumentsLocation, "C:/Users/MARK/Documents"
QStandardPaths::FontsLocation, "C:/windows/Fonts"
QStandardPaths::ApplicationsLocation, "C:/Users/MARK/AppData/Roaming/Microsoft/Windows/Start Menu/Programs"
QStandardPaths::MusicLocation, "C:/Users/MARK/Music"
QStandardPaths::MoviesLocation, "C:/Users/MARK/Videos"
QStandardPaths::PicturesLocation, "C:/Users/MARK/Pictures"
QStandardPaths::TempLocation, "C:/Users/MARK/AppData/Local/Temp"
QStandardPaths::HomeLocation, "C:/Users/MARK"
QStandardPaths::DataLocation, "C:/Users/MARK/AppData/Local/test6"
QStandardPaths::CacheLocation, "C:/Users/MARK/AppData/Local/test6/cache"
QStandardPaths::GenericDataLocation, "C:/Users/MARK/AppData/Local"
QStandardPaths::RuntimeLocation, "C:/Users/MARK"
QStandardPaths::ConfigLocation, "C:/Users/MARK/AppData/Local/test6"
QStandardPaths::DownloadLocation, "C:/Users/MARK/Downloads"
QStandardPaths::GenericCacheLocation, "C:/Users/MARK/AppData/Local/cache"
QStandardPaths::GenericConfigLocation, "C:/Users/MARK/AppData/Local"
QStandardPaths::AppDataLocation, "C:/Users/MARK/AppData/Roaming/test6"
QStandardPaths::AppConfigLocation, "C:/Users/MARK/AppData/Local/test6"
QStandardPaths::AppLocalDataLocation
*/
QString MainWindow::getPath()
{
QString sPath = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);
return sPath;
}
//2、获取当前工程目录
QString MainWindow::getCurrentPath()
{
return QDir::currentPath();
}
//3、获取指定目录下的所有文件名
QStringList MainWindow::getFileNames(QString sPath)
{
if (sPath.isEmpty()) return QStringList();
//获取指定路径下的所有图片名称
QDir dir(sPath);
QStringList lisFilters;
lisFilters << "*.bmp" << "*.jpg" << "*.jpeg" << "*.png" << "*.gif" << "*.tiff" << "*.*";
QStringList listImgFileNames = dir.entryList(lisFilters, QDir::Files | QDir::Readable, QDir::Name);
return listImgFileNames;
}
//4、获取系统当前时间
//iType==0:获取 星期 月份 日 时:分:秒 年 (周一 五月 25 15:08:21 2020)
//iType==1:获取年月日时分秒毫秒 (2020-05-25 15:09:38.906)
//iType==2:获取年月日时分秒 (2020-05-25 15:09:38)
//iType==3:获取年月日 (2020-05-25)
//iType==4:获取时分秒 (15:09:38)
QString MainWindow::getCurrentTime(int iType)
{
QString sNow;
if (iType == 0) sNow = QDateTime::currentDateTime().toString();
else if (iType == 1) sNow = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz");
else if (iType == 2) sNow = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss");
else if (iType == 3) sNow = QDateTime::currentDateTime().toString("yyyy-MM-dd");
else if (iType == 4) sNow = QDateTime::currentDateTime().toString("hh:mm:ss");
return sNow;
}
//5、获取自1970.1.1日以来到当前时间的毫秒数
QString MainWindow::getMSecsSinceEpoch()
{
QDateTime dt = QDateTime::currentDateTime();
qint64 ms = dt.toMSecsSinceEpoch();
return QString::number(ms, 10);
}
//6、打开选择目录的对话框
QString MainWindow::selectPathDlg()
{
QString sDesktop = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);
QString sPath = QFileDialog::getExistingDirectory(this, "选择目录", sDesktop, QFileDialog::ShowDirsOnly);
return sPath;
}
//7、打开选择文件路径的对话框
QString MainWindow::selectFileNameDlg()
{
QString sDesktop = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);
QString sPath = QFileDialog::getOpenFileName(this, "请选择文件", sDesktop, "*.txt \r\n *.xls \r\n *.bmp \r\n *.*");
return sPath;
}
//8、打开选择保存文件对话框
QString MainWindow::saveFileNameDlg()
{
QString sDesktop = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);
QString sPath = QFileDialog::getSaveFileName(this, "选择保存文件名", sDesktop, "*.txt \r\n *.xls");
return sPath;
}
//9、创建目录
//如果目录不存在则创建目录
//如果目录存在则创建失败
bool MainWindow::makeDir(QString sPath)
{
QDir dir;
return dir.mkdir(sPath);
}
//10、删除目录
//如果目录存在则删除成功
//如果目录不存在则删除失败
bool MainWindow::removeDir(QString sPath)
{
QDir dir;
return dir.rmdir(sPath);
}
//11、递归一次性创建多层目录
//如果目录存在则创建失败
//如果目录不存在则创建成功
bool MainWindow::makePath(QString sPath)
{
QDir dir;
return dir.mkpath(sPath);
}
//12、递归一次性删除多层目录
//如果目录存在则创建失败
//如果目录不存在则创建成功
bool MainWindow::removePath(QString sPath)
{
QDir dir;
return dir.rmpath(sPath);
}
//13、删除文件
//如果文件存在则删除成功
//如果文件不存在则删除失败
bool MainWindow::removeFile(QString sFilePath)
{
QDir dir;
return dir.remove(sFilePath);
}
//14、重命名目录/文件
//如果目录/文件存在则重命名成功
//如果目录/文件不存在则重命名失败
bool MainWindow::reMakeName(QString sOldName, QString sNewName)
{
QDir dir;
return dir.rename(sOldName, sNewName);
}
//15、判断目录/文件是否存在
//如果目录/文件存在则返回true
//如果目录/文件不存在则返回false
bool MainWindow::isExists(QString sName)
{
QDir dir;
return dir.exists(sName);
}