VC開啟瀏覽檔案對話方塊、瀏覽資料夾對話方塊
今天,又看了這些東西,在VC裡面建立瀏覽檔案對話方塊比建立瀏覽資料夾對話方塊要簡單一些。
一、建立“瀏覽檔案對話方塊” 用CFileDialog類實現,比如:CFileDialog FDlg(TRUE , ".doc" , NULL , OFN_HIDEREADONLY , "word檔案(*.doc)|*.doc|所有檔案(*.*) |*.*||" ); if(FDlg.DoModal() == IDOK)
{ filePath = FDlg.GetPathName();
UpdateData(false);
}
CFileDialog檔案選擇對話方塊的使用:
首先構造一個物件並提供相應的引數,建構函式原型如下:
CFileDialog::CFileDialog(
BOOL bOpenFileDialog, //為TRUE則顯示開啟對話方塊,為FALSE則顯示儲存對話檔案對話方塊
LPCTSTR lpszDefExt = NULL, //預設的副檔名
LPCTSTR lpszFileName = NULL, //預設的檔名
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
LPCTSTR lpszFilter = NULL, //列出可供選擇的檔案型別和相應的副檔名
CWnd* pParentWnd = NULL //父視窗控制代碼指標
);
LPCTSTR lpszFilter 引數格式如:"Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc;*.xls|All Files (*.*)|*.*||";檔案型別說明和副檔名間用 | 分隔,同種型別檔案的副檔名間可以用 ; 分割,每種檔案型別間用 | 分隔,末尾用 || 指明。
建立檔案對話方塊可以使用DoModal(),在返回後可以利用下面的函式得到使用者選擇:
CString CFileDialog::GetPathName( ) 得到完整的檔名,包括目錄名和副檔名如:c:/test/test1.txt
CString CFileDialog::GetFileName( ) 得到完整的檔名,包括副檔名如:test1.txt
CString sFolderPath;
BROWSEINFO bi;
char Buffer[MAX_PATH];
//初始化入口引數bi開始
bi.hwndOwner = NULL;
bi.pidlRoot =NULL;//初始化制定的root目錄很不容易,
bi.pszDisplayName = Buffer;//此引數如為NULL則不能顯示對話方塊
bi.lpszTitle = "修改接收路徑";
//bi.ulFlags = BIF_BROWSEINCLUDEFILES;//包括檔案
bi.ulFlags = BIF_EDITBOX;//包括檔案
bi.lpfn = NULL;
bi.iImage=IDR_MAINFRAME;
//初始化入口引數bi結束
LPITEMIDLIST pIDList = SHBrowseForFolder(&bi);//呼叫顯示選擇對話方塊
if(pIDList)
{
SHGetPathFromIDList(pIDList, Buffer);
//取得資料夾路徑到Buffer裡
sFolderPath = Buffer;//將資料夾路徑儲存在一個CString物件裡
}
LPMALLOC lpMalloc;
if(FAILED(SHGetMalloc(&lpMalloc)))
return;
lpMalloc->Free(pIDList);
lpMalloc->Release();
MessageBox(sFolderPath,"Title",MB_OK);
三、建立可以多選的“瀏覽檔案對話方塊”
使用CFileDialog類並設定OFN_ALLOWMULTISELECT標誌,OPENFILENAME結構體的lpstrFile成員是一個指向使用者申請分配的緩衝區,裡面接受所選的路徑和檔名列表,這個列表的每一項由一個NULL隔開,最末以兩個NULL結束。nMaxFile成員指明瞭緩衝區的大小,如果所選擇的檔名的加起來的總長度超過了此值,則DoModal函式返回IDCANCEL,如果使用者試圖開啟超過緩衝區大小的檔案集的話,CommDlgExtendedError()將返回FNERR_BUFFERTOOSMALL,這時候,lpstrFile的前兩個byte將會包含實際需要的緩衝區的位元組數。
如果是在Windows NT 4.0下,能被拷貝到lpstrFile緩衝區的位元組數被限制在2562位元組以內,如果超過將被截斷。
以下是一個使用該類進行多檔名選擇的例子:
#include "cderr.h" //for definition of FNERR_BUFFERTOOSMALL
CFileDialog dlg( TRUE, NULL, NULL, OFN_ALLOWMULTISELECT, NULL, NULL );
DWORD MAXFILE = 4000 ;
dlg.m_ofn.nMaxFile = MAXFILE;
char* pc = new char[MAXFILE];
dlg.m_ofn.lpstrFile = pc;
dlg.m_ofn.lpstrFile[0] = NULL;
int iReturn = dlg.DoModal();
if(iReturn == IDOK)
{
int nCount = 0;
POSITION pos = dlg.GetStartPosition(); CString FileName;
while (pos != NULL)
{
FileName = dlg.GetNextPathName(pos);
AfxMessageBox(FileName); //顯示所選的多個檔案的路徑 nCount++; //記錄所選檔案的數目
}
CString str;
str.Format("Successfully opened %d files/n", nCount);
AfxMessageBox(str);
}
else if(iReturn == IDCANCEL)
AfxMessageBox("Cancel");
if(CommDlgExtendedError() == FNERR_BUFFERTOOSMALL)
AfxMessageBox("BUFFERTOOSMALL");
delete [] pc; 看起來還是比較麻煩的,有可能是因為我們沒有認真地去弄明白裡面的每一個引數到底是幹什麼用的,所以看到這麼多引數,就感覺不舒服,我也是。當然,如果去看看這些類是怎麼回事,倒會好些。
相關推薦
VC開啟瀏覽檔案對話方塊、瀏覽資料夾對話方塊
今天,又看了這些東西,在VC裡面建立瀏覽檔案對話方塊比建立瀏覽資料夾對話方塊要簡單一些。 一、建立“瀏覽檔案對話方塊” 用CFileDialog類實現,比如: CFileDialog FDlg(TRUE , ".doc" , NULL , OF
VC++開啟、儲存檔案對話方塊和瀏覽資料夾對話方塊
一。開啟資料夾: 1。CFileDialog實現 CFileDialog hFileDlg(true,NULL , NULL, OFN_FILEMUSTEXIST | OFN_READONLY | OFN_PATHMUSTEXIST, TEXT("驅動檔案 (*.
在VC中開啟瀏覽資料夾對話方塊
TCHAR szPathName[MAX_PATH];CString str = L"";CString strDir = L"";//選擇的目錄TCHAR szTitle[] = _T("選擇清除路徑");memset(&bi,0,sizeof(BROWSEINFO));memset(szPath
C# 瀏覽資料夾、獲得資料夾及子目錄下的所有檔案
FolderBrowserDialog dialog = new FolderBrowserDialog(); dialog.Description = "請選擇檔案路徑"; if (dialog.ShowDialog() ==
C# 選擇檔案、選擇資料夾、開啟檔案(或者資料夾)
1、選擇檔案用OpenDialog OpenFileDialog dialog = new OpenFileDialog(); dialog.Multiselect = true;//該值確定是否可以選擇多個檔案 dialog.Title = "請選擇資料夾"; dialog.Filter = "
C# 選擇檔案、選擇資料夾、開啟檔案(或者資料夾) 路徑中獲取檔案全路徑、目錄、副檔名、檔名稱 追加、拷貝、刪除、移動檔案、建立目錄 修改檔名、資料夾名!!
https://www.cnblogs.com/zhlziliaoku/p/5241097.html 1、選擇檔案用OpenDialog OpenFileDialog dialog = new OpenFileDialog(); dialog.Multiselect = true;/
WPF選擇檔案和資料夾對話方塊
WPF提供了選擇檔案對話方塊,但並沒有提供選擇資料夾的對話方塊。 OpenFileDialog類存在於PresentationFramework.dll程式集。 1 public string SelectFileWpf() 2 { 3 var open
關於VC彈出選擇資料夾對話方塊
VC程式設計中經常需要彈出選擇資料夾對話方塊供使用者選擇目標資料夾 基本實現的原始碼如下: 1 void CTestDlg::OnBtnTest() 2 { 3 // TODO: Add your control notification handler code here 4
Excel VBA 開啟對話方塊,獲取資料夾路徑
Excel 開啟對話方塊,獲取資料夾路徑 'Window「參照」ダイアログで選択したItem 名を取得 Public Function GetFolderName(ByVal DialogType As MsoFileDialogType) As String W
通過shell終端直接開啟socket檔案進行TCP、UDP通訊
linux中有一個特殊的檔案/dev/tcp,開啟這個檔案就類似於發出了一個socket呼叫,建立一個socket連線,讀寫這個檔案就相當於在這個socket連線中傳輸資料。 開啟/dev/tcp 以讀寫方式開啟/dev/tcp,並指定伺服器名為: www.c
MFC開啟資料夾對話方塊初始化開啟路徑
使用MFC開發程式時,有時需要選擇資料夾,可使用SHBrowseForFolder解決,但此方法並不支援初始化選擇路徑。 開啟資料夾對話方塊,程式碼如下: BROWSEINFO bi; TCHAR Buffer[MAX_PATH]; bi.hwndOwner = NU
【python修改檔案】帶引數修改資料夾名、資料夾裡檔名、檔案內容等
原始碼如下: # -*- coding: utf-8 -*- #coding=utf-8 ''' 指令碼說明 功能:在新增新遙控時,需要手動改檔名和檔案內容。現執行指令碼可自動修改(碼值仍需要手動修改) 使用:python ir_modify.py "原有的檔名"
SprinMVC轉發、重定向、收集date資料、自定義轉換器、檔案上傳、json資料轉換
1.專案模組圖 2.完成SpringMVC的基本搭建 pom.xml(下載jar包的檔案) <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.
C#如何操控FTP,獲取FTP檔案或資料夾列表,獲取FTP檔案大小,FTP上傳,FTP刪除檔案,FTP新建資料夾、刪除資料夾
C#如何操控FTP 出處:http://www.cnblogs.com/rond/archive/2012/07/30/2611295.html,http://www.cnblogs.com/rond 關於FTP的應用免不了要對FTP進行增刪查改什麼的。通過搜尋,整理和修改
(圖文)SVN檔案/資料夾圖示顏色不顯示問題解決辦法、SVN資料夾和檔案狀態圖示顯示不正常
svn檢出的資料夾上沒有綠色的對號,或者紅色的感嘆號標識。仍然是windows預設的資料夾。 解決方法: 首先,用win+R鍵開啟 執行 視窗,裡面輸入regedit(登錄檔),確定進入 首先我們找到localmachine,點選進入,下面找到software,展開下面的節點 在sof
用VB實現重新命名、拷貝資料夾及檔案
用VB實現重新命名、拷貝資料夾及檔案 Private Sub commandButton1_Click() '宣告資料夾名和路徑 Dim FileName, Path As String, EmptySheet As String 'Path = "D:\上報" Path = Inp
自定義樣式的資料夾對話方塊 FolderBrowserDialog
說明:我們選擇資料夾就要使用net自帶的folderBrowserDialog,但是這個dialog看上去並不是非常好看 因此使用IFileOpenDialog介面重寫了一個folderBrowserDialog,可以實現類似OpenFileDialog的樣式效果圖: 是
javaSE (三十二)找出字串中重複的元素並寫入檔案、模擬正版軟體使用次數期限、獲取資料夾下的全部java檔案
1、找出字串中重複的元素並寫入檔案: 問題:鍵入(或者從一個檔案中讀取)一個字串,找出字串中重複的元素並寫入檔案 思路: 鍵入字串 map儲存 寫入檔案 程式碼: package cn.njupt; /* * * 鍵入一串字元,計算每個字元出
雲展網教程 | 編輯書櫥標題、密碼、開啟方式、同步資料夾
雲展網提供了書櫥功能,方便使用者通過書櫥整合展示一系列書籍。下面我們對書櫥的相應內容進行設定: 標題:書櫥的名稱,顯示在書櫥上方,微信等分享平臺分享書櫥時顯示的標題。 密碼:使用者訪問書櫥需要輸入密碼才能看見書籍。密碼設定可見情況下設定。 同步資料夾:勾選是否同步資料夾,選擇是的情
MFC下對檔案及資料夾的操作(複製、剪下、刪除、建立資料夾,寫檔案)
1 void CFileOperationDlg::OnButtonCopy() 2 { 3 // TODO: Add your control notification handler code here 4 UpdateData(TRUE); 5 CString m_