Ⅰ qt相對路徑,需要取到祖父目錄下的文件夾
使用QDir 裡面的相關方法,
QDir::current()獲得當前Dir,然後使用cdUp()進到其父目錄,兩次調用應該就可以了
具體請參考:http://qt-project.org/doc/qt-4.8/qdir.html
Ⅱ QT中遍歷一個文件夾並給文件夾中的每個文件改名字,如何構造遍歷文件夾的迭代器,請高手指教啊
QDirIterator it("/etc", QDirIterator::Subdirectories);
while (it.hasNext()) {
qDebug() << it.next();
// /etc/.// /etc/..// /etc/X11// /etc/X11/fs// ...
}
迭代器不用自己寫 還有隻是重命名文件名不用打開文件的 我沒具體寫 你先試試吧
Ⅲ Qt 如何在打開的文件夾中滑鼠選中某文件
是在打開的文件夾中自動選中某文件吧?不需要用滑鼠。
試試看這一段:
boolOpenFolderAndSelectFile(constchar*filePath)
{
#ifdefQ_OS_WIN
LPITEMIDLISTpidl;
LPCITEMIDLISTcpidl;
LPSHELLFOLDERpDesktopFolder;
ULONGchEaten;
HRESULThr;
WCHARwfilePath[MAX_PATH+1]={0};
::CoInitialize(NULL);
if(SUCCEEDED(SHGetDesktopFolder(&pDesktopFolder)))
{
//IShellFolder::ParseDisplayName要傳入寬位元組
LPWSTRlpWStr=NULL;
//#ifdef_UNICODE
//_tcscpy(wfilePath,strFilePath);
//lpWStr=wfilePath;
//#else
MultiByteToWideChar(CP_ACP,0,(LPCSTR)filePath,-1,wfilePath,MAX_PATH);
lpWStr=wfilePath;
//#endif
hr=pDesktopFolder->ParseDisplayName(NULL,0,lpWStr,&chEaten,&pidl,NULL);
if(FAILED(hr))
{
pDesktopFolder->Release();
::CoUninitialize();
returnFALSE;
}
cpidl=pidl;
//SHOpenFolderAndSelectItems是非公開的API函數,需要從shell32.dll獲取
//該函數只有XP及以上的系統才支持,Win2000和98是不支持的,考慮到Win2000
//和98已經基本不用了,所以就不考慮了,如果後面要支持上述老的系統,則要
//添加額外的處理代碼
HMODULEhShell32DLL=::LoadLibraryA("shell32.dll");
//ASSERT(hShell32DLL!=NULL);
if(hShell32DLL!=NULL)
{
typedefHRESULT(WINAPI*pSelFun)(LPCITEMIDLISTpidlFolder,UINTcidl,LPCITEMIDLIST*apidl,DWORDdwFlags);
pSelFunpFun=(pSelFun)::GetProcAddress(hShell32DLL,"SHOpenFolderAndSelectItems");
//ASSERT(pFun!=NULL);
if(pFun!=NULL)
{
hr=pFun(cpidl,0,NULL,0);//第二個參數cidl置為0,表示是選中文件
if(FAILED(hr))
{
::FreeLibrary(hShell32DLL);
pDesktopFolder->Release();
::CoUninitialize();
returnFALSE;
}
}
::FreeLibrary(hShell32DLL);
}
else
{
pDesktopFolder->Release();
::CoUninitialize();
returnFALSE;
}
//釋放pDesktopFolder
pDesktopFolder->Release();
}
else
{
::CoUninitialize();
returnFALSE;
}
::CoUninitialize();
returnTRUE;
#else
QStringpathIn(filePath);
QStringListscriptArgs;
scriptArgs<<QLatin1String("-e")<<QString::fromLatin1("tellapplication"Finder"torevealPOSIXfile"%1"").arg(pathIn.replace('\','/'));
QProcess::execute(QLatin1String("/usr/bin/osascript"),scriptArgs);
scriptArgs.clear();
scriptArgs<<QLatin1String("-e")<<QLatin1String("tellapplication"Finder"toactivate");
QProcess::execute("/usr/bin/osascript",scriptArgs);
returntrue;
#endif
}
Ⅳ qt計算文件夾的個數
QT獲取某個文件夾下 某格式文件的數量
int GetRSSCount()
{
int count=0;
QDir myDir(RSS_SEEDINNEW);
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
for(unsigned int i=0;i<myDir.count();i++)
{
QString sext=myDir[i].toLower();
if(-1!=sext.indexOf(".xml"))
count++;
}
return count;
}
以下處理文件夾中還有文件夾情況
void GetFileCount(QString RSS_seedPath)
{
QDir myDir(RSS_seedPath);
QFileInfo finfo;
QFileInfo finfotemp;
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
for(unsigned int i=0;i<myDir.count();i++)
{
finfo = QFileInfo(myDir.filePath(myDir[i])); //目錄下每個文件的文件信息
if ((finfo.fileName() == ".") || (finfo.fileName() == ".."))//這兩個目錄不需要
{
continue;
}
if(finfo.isDir())
{
GetRssFileCount(myDir.filePath(myDir[i])); //如果是文件夾 則遞歸調用
}
Ⅳ QtExample文件夾如何刪
直接刪刪不掉么?
Ⅵ qt 怎樣獲取文件夾下的所有文件
QCoreApplication有幾個靜態方法可以實現,我一般用QCoreApplication::applicationDirPath()獲取可執行文件得目錄
Ⅶ QT 獲得指定文件夾及子文件夾下面的文件
使用QDir::entryInfoList獲的文件夾下的所有文件列表(QFileInfoList),然後通過判斷QFileInfoList中每個QFileInfo的類型,QFileInfo::isDir()判斷是否目錄,QFileInfo::isFile()判斷是否是文件,對於目錄,同樣的方法處理即可獲得子目錄中的文件了。
Ⅷ lol內置語音QT的文件夾是哪個
運行文件在:英雄聯盟\Cross\Apps\LQT\QT\Bin裡面,
卸載文件是在英雄聯盟\Cross\Apps\LQT\QT\QT裡面
「alkUninst.exe「這個文件雙擊卸載。
QT是可以卸載的,之所以放在LOL文件裡面是騰訊的一個小手段而已。
不過沒必要卸載,卡的話進了游戲把配置調低一點就好了,
進游戲-->按下Esc鍵-->然後把視頻效果調低就好了。
Ⅸ qt如何創建以系統時間命名的文件夾
QString str_time;
QDateTime time = QDateTime::currentDateTime();
str_time = time.toString("yyyy-MM-dd_hh-mm-ss");
QDir dir;
dir.mkpath(str_time );
注意包含相關頭文件 QDir,QString,QDateTime
Ⅹ QT中怎麼在項目里新建一個文件夾。