導航:首頁 > 文件教程 > mfc獲取文件夾路徑

mfc獲取文件夾路徑

發布時間:2023-09-04 02:09:07

① MFC 如何從CString中獲取文件目錄

從後往前查找最後一個路徑分隔符的索引 ,然後截取內字元串
容CString str = _T("C:\\WINDOWS\\SYSTEM32\\123.EXE");
int nPos = str.ReverseFind (_T('\\'));
str = str.Left(nPos+1);

② MFC獲取指定文件夾文件目錄

在MFC中,使用CFileFind類,可以枚舉一個目錄下的所有文件和子回目錄。

示例:

voidListFolder(constCString&sPath)
{
CFileFindff;
BOOLbFound=ff.FindFile(sPath+"\*.*");
while(bFound)
{
bFound=ff.FindNextFile();
if(ff.IsDirectory())//是目錄
{
if(!ff.IsDots())//不是本答級目錄或父目錄(.和..)
ListFolder(ff.GetFilePath());//遞歸子目錄
}
else
{
AfxMessageBox("文件:"+ff.GetFilePath());
}
}
ff.Close();
}

③ MFC中獲取多個文件路徑的方法,獲取的多文件路徑無法讀取doc->LoadFile()值為非

你好 親
修改後的應該是這樣的
dlgFile.m_ofn.Flags |= OFN_ALLOWMULTISELECT | OFN_ENABLESIZING | OFN_HIDEREADONLY;
dlgFile.m_ofn.lpstrFilter = _T("Bin Files(*.bin)\0*.bin\0All Files(*.*)\0*.*\0\0");
const int nMaxFiles = 1000;
const int nMaxPathBuffer = (nMaxFiles * (MAX_PATH + 1)) + 1;
LPSTR pc = (LPSTR)malloc(nMaxPathBuffer * sizeof(WCHAR));

if( pc )
{
dlgFile.GetOFN().lpstrFile = pc;
dlgFile.GetOFN().lpstrFile[0] = NULL;
dlgFile.m_ofn.nMaxFile = nMaxPathBuffer;
if (dlgFile.DoModal() != IDOK)
{
return;
}
UpdateData(TRUE);
POSITION pos = dlgFile.GetStartPosition();//獲取第一個文件位置
UpdateData(FALSE);
while (pos)
{
m_FilePathName[i] = dlgFile.GetNextPathName(pos);
if(i == 0)
{
m_TreeMuti1.DeleteAllItems();
/*TiXmlDocument *doc1 = new TiXmlDocument("D:\\sumA.bin");*/
TiXmlDocument *doc1 = new TiXmlDocument(m_FilePathName[0]);
/*CString str;str.Format(_T("%s"),m_FilePathName[0]);AfxMessageBox(str);*/
if (!doc1->LoadFile())
{
/*CString str;str.Format(_T("%s"),m_FilePathName[0]);AfxMessageBox(str);*/
return;
}
TiXmlElement *root1=doc1->RootElement();
TiXmlElement *pNode1=root1;
CrcXmlMuti1(pNode1,TVI_ROOT);

④ 在mfc中獲取的文件路徑是cstring型,想用fread和fopen這樣的函數讀取文件

已經獲取了CString類型的文件路徑,一般推薦使用CFile或者CStdioFile進行文件操作。版
fread也是可以的,打開的文權件名參數使用cstring.GetBuffer(0)就可以了,不過注意工程最好不要是UNICODE模式,這種模式下fread會有一些麻煩。

⑤ MFC 保存文件路徑

直接用 API 函數就可以。獲取當前路徑:GetCurrentDirectory()。設定當前路徑:SetCurrentDirectory();

這里是獲取的例子:
#include <Windows.h>
#include <stdio.h>
#include <stdlib.h>
main()
{
char buf[200];
GetCurrentDirectory(200, buf);
printf("dir is: %s",buf);
return 0;
}
===

char buf[200];
GetCurrentDirectory(200, buf); 放入 MFC 程序,路徑就在 buf 里。
修改 buf 內容 SetCurrentDirectory(buf); 新路徑就設好了。

⑥ mfc中文件路徑的獲取

'm_File' : undeclared identifier ,沒有這個變來量,源要先定義的類型的;

m_File 在類 .h 文件裡面定義, CString m_File;
或者直接在函數裡面定義也可以

⑦ MFC怎麼查找當前目錄以及子目錄下的*_DS.TXT文件

在應用程序的開發過程中,會遇到如何查找某一文件以確定此文件路徑的問題。利用CFileFind類可以比較方便地在當前目錄下進行文件查找,但卻不能對其子目錄中的文件進行搜尋。而實際應用中往往需要對某一整個目錄樹,甚至是整個C盤或D盤驅動器進行文件搜尋。通過實踐,我們在Visual C++ 6.0中編程實現了如何遍歷任意目錄樹,以查找某一特定的文件。
在下面的具體陳述中可以看到,在確定要查找的文件名和要進行搜索的目錄的名稱後,將調用函數Search_Directory進行文件的查找。首先依次查找當前目錄下的每一個實體(文件或是子目錄),如果是某一子目錄,則進入該子目錄並遞歸調用函數Search_Dirctory進行查找,查找完畢之後, 再返回上一級目錄;如果不是子目錄而是某一文件,則判斷其是否就是我們要查找的文件,如果是則輸出其完整的文件路徑。這樣,通過Search_Directory函數的反復遞歸調用,就可以實現對整個目錄,包括子目錄的遍歷搜索。下面將舉例詳細講述如何在VC++中編程實現在整個目錄樹中的文件查找。
1. 在Visual C++ 6.0中用默認方式創建了一基於對話框的應用程序Search。在主窗口對話框上放置一命令按鈕,其Caption為「Search File」,ID為ID_BUTTON_SEARCH。單擊此按鈕將完成文件的查找工作。
2. 利用ClassWizard為「Search File」按鈕的BN_CLICKED 事件添加處理函數OnButtonSearch,代碼如下:

#include 〈direct.h〉
#include 〈io.h〉
void CSearchDlg::OnButtonSearch()
{
// TODO: Add your control notification handler code here

char szFilename[80];
// 字元串 szFilename 表示要查找的文件名

strcpy(szFilename,"Mytext.txt");

_chdir("d:\\"); // 進入要查找的路徑(也可為某一具體的目錄)
// 查找文件, 如果查到則顯示文件的路徑全名
Search_Directory(szFilename);
// 為CSearchDlg類的一成員函數
MessageBox(″查找文件完畢!″);
// 顯示查找完畢的信息
}

3. 在CSearchDlg類中增加成員函數Search_Directory,它將完成具體的文件查找工作,代碼如下:
void CSearchDlg::Search_Directory(char* szFilename)
{
long handle;
struct _finddata_t filestruct;
//表示文件(或目錄)的信息
char path_search[_MAX_PATH];
//表示查找到的路徑結果
// 開始查找工作, 找到當前目錄下的第一個實體(文件或子目錄),
// "*"表示查找任何的文件或子目錄, filestruct為查找結果
handle = _findfirst("*", &filestruct);
// 如果handle為-1, 表示當前目錄為空, 則結束查找而返回
if((handle == -1)) return;
// 檢查找到的第一個實體是否是一個目錄(filestruct.name為其名稱)
if( ::GetFileAttributes(filestruct.name) & FILE_ATTRIBUTE_DIRECTORY )
{
// 如果是目錄, 則進入該目錄並遞歸調用函數Search_Dirctory進行查找,
// 注意: 如果目錄名的首字元為'.'(即為"."或".."), 則不用進行查找
if( filestruct.name[0] != '.' )
{
_chdir(filestruct.name);
Search_Directory(szFilename);
// 查找完畢之後, 返回上一級目錄
_chdir("..");
}
}
else // 如果第一個實體不是目錄, 則檢查是否是要查找的文件
{
// stricmp對兩字元串進行小寫形式的對比, 返回為0表示完全一致
if( !stricmp(filestruct.name, szFilename) )
{
// 先獲得當前工作目錄的全路徑
_getcwd(path_search,_MAX_PATH);
// 再獲得文件的完整的路徑名(包含文件的名稱)
strcat(path_search,"\\");
strcat(path_search,filestruct.name);
MessageBox(path_search); //輸出顯示
}
}
// 繼續對當前目錄中的下一個子目錄或文件進行與上面同樣的查找
while(!(_findnext(handle,&filestruct)))
{
if( ::GetFileAttributes(filestruct.name) & FILE_ATTRIBUTE_DIRECTORY )
{
if(*filestruct.name != '.')
{
_chdir(filestruct.name);
Search_Directory(szFilename);
_chdir("..");
}
}
else
{
if(!stricmp(filestruct.name,szFilename))
{
_getcwd(path_search,_MAX_PATH);
strcat(path_search,"\\");
strcat(path_search,filestruct.name);
MessageBox(path_search);
}
}
}
_findclose(handle);
// 最後結束整個查找工作
}
這樣我們就可以對整個目錄進行遍歷搜索,查找某一特定的文件,並輸出顯示其完整的文件路徑。以上的程序在Visual C++ 6.0中已調試通過。

⑧ MFC中想實現打開文件或文件夾,該怎麼實現呢

把"通過選擇得到一個文件/文件夾的路徑" 這些代碼實現 寫到某個函數里,不是寫到按鈕實現的函數里就行了。例如:

【以下代碼中 filePathFile就是你想要的路徑】
在主體函數中:
CFileDialog *lpszOpenFile; //定義一個CfileDialog對象
//生成一個對話框
lpszOpenFile = new CFileDialog
(TRUE,"abc.txt","",OFN_FILEMUSTEXIST |OFN_HIDEREADONLY , "文件類型(*.txt)|*.txt|所有文件(*.*)|*.*|");

if(lpszOpenFile->DoModal() == IDOK )//假如點擊對話框確定按鈕
{
filePathName = lpszOpenFile->GetPathName();//得到打開文件的路徑

}

if(!file.Open(filePathName,CFile::modeRead))
{
MessageBox("can not open file!");
return;
}

閱讀全文

與mfc獲取文件夾路徑相關的資料

熱點內容
電腦計算器文件類型是多少 瀏覽:671
wsdl地址生成wsdl文件 瀏覽:798
系統會同時保存多少文件夾 瀏覽:63
勞務費app怎麼申請繳稅 瀏覽:575
dw最新版本如何建立網站 瀏覽:799
wps表格怎樣取消密碼設置密碼 瀏覽:135
老黃歷哪個網站好 瀏覽:316
rar是文件怎麼打開 瀏覽:395
java開發app的架構 瀏覽:865
ppt怎麼放音頻文件 瀏覽:874
app被騙錢怎麼找回 瀏覽:813
型動app怎麼做教練 瀏覽:364
雪佛蘭車載app怎麼樣 瀏覽:133
637的微信版本如何建百人群 瀏覽:41
外梯形螺紋怎麼編程 瀏覽:986
vs2010vb工具箱 瀏覽:938
win10重裝多少錢 瀏覽:662
資料庫系統由什麼什麼等構成 瀏覽:413
java父子關系生成樹 瀏覽:936
達夢資料庫oci編程需要哪些庫 瀏覽:64

友情鏈接