日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

获取我的文档“路径

發布時間:2023/12/9 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 获取我的文档“路径 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

From:?http://blog.csdn.net/chinabinlang/article/details/8637362

方法一:來自網絡;

CString getMyDoc() // 獲取“我的文檔”路徑 {TCHAR m_lpszDefaultDir[MAX_PATH] = {0};TCHAR szDocument[MAX_PATH] = {0};memset(m_lpszDefaultDir, 0, _MAX_PATH);LPITEMIDLIST pidl = NULL;SHGetSpecialFolderLocation(NULL, CSIDL_PERSONAL, &pidl);if (pidl && SHGetPathFromIDList(pidl, szDocument)){GetShortPathName(szDocument, m_lpszDefaultDir, _MAX_PATH);}return CString(szDocument); }
方法二:

函數SHGetSpecialFolderLocation():

?

#include "shlobj.h" //包含頭文件
WINSHELLAPI HRESULT WINAPI?SHGetSpecialFolderLocation?(HWND hwndOwner, int nFolder,LPITEMIDLIST * ppidl); //函數聲明

hwndOwner:?指定了"所有者窗口",在調用這個函數是可能出現的對話框或信息框.

nFolder:?是一個整數id,決定哪個目錄是待查找目錄,它的取值可能是
CSIDL_BITBUCKET??????????????????? 回收站
CSIDL_CONTROLS??????????????????? 控制面板
CSIDL_DESKTOP??????????????????????Windows桌面desktop;
CSIDL_DESKTOPDIRECTORY?? desktop的目錄;

CSIDL_DRIVES??????????????????????????? 我的電腦
CSIDL_FONTS???????????????????????????? 字體目錄
CSIDL_NETHOOD?????????????????????? 網上鄰居
CSIDL_NETWORK?????????????????????? 網上鄰居virtual folder
CSIDL_PERSONAL????????????????????? 我的文檔
CSIDL_PRINTERS??????????????????????? 打印機

CSIDL_PROGRAMS??????????????????? 程序組
CSIDL_RECENT????????????????????????? 最近打開文檔
CSIDL_SENDTO????????????????????????? 發送到菜單項

CSIDL_STARTMENU??????????????????? 快啟菜單

CSIDL_STARTUP???????????????????????? 啟動目錄

CSIDL_TEMPLATES???????????????????? 臨時文檔
ppidl: pidl地址. SHGetSpecialFolderLocation把地址寫到pidl.

示例代碼VC++ 6.0測試通過):
LPITEMIDLIST pidl;
LPMALLOC pShellMalloc;
char szDir[200];

if(SUCCEEDED(SHGetMalloc(&pShellMalloc)))
{
if(SUCCEEDED(SHGetSpecialFolderLocation(NULL,CSIDL_DESKTOP,&pidl))) {
// 如果成功返回true
SHGetPathFromIDList(pidl, szDir);
pShellMalloc->Free(pidl);
}
pShellMalloc->Release();
}
::MessageBox (NULL,szDir,"Path",MB_OK);


VC獲取指定文件夾路徑

?

flyfish? 2010-3-5

?

一 使用Shell函數


1 獲取應用程序的安裝路徑

?

TCHAR buf[_MAX_PATH];
SHGetSpecialFolderPath(NULL,buf,CSIDL_PROGRAM_FILES,NULL);
AfxMessageBox(buf);


2 獲取應用程序數據路徑的文件夾

?TCHAR bufApplicateData[_MAX_PATH];

SHGetSpecialFolderPath(NULL,bufApplicateData,CSIDL_APPDATA,NULL);
AfxMessageBox(bufApplicateData);

?

3 獲取系統文件夾

?TCHAR buf[_MAX_PATH];

SHGetSpecialFolderPath(NULL,buf,CSIDL_SYSTEM,NULL);
AfxMessageBox(buf);

?

4 獲取Windows目錄

?TCHAR buf[_MAX_PATH];

SHGetSpecialFolderPath(NULL,buf,CSIDL_WINDOWS,NULL);
AfxMessageBox(buf);

?

5 獲取其他指定文件夾

?主要使用SHGetSpecialFolderPath函數

函數原型:BOOL SHGetSpecialFolderPath(HWND hwndOwner,LPTSTR lpszPath,int nFolder, BOOL fCreate);
參數nFolder指明獲取什么樣的文件夾。如下參考
MSDN可以搜索關鍵字:CSIDL
MSDN URL:ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.WIN32COM.v10.en/shellcc/platform/shell/reference/enums/csidl.htm


二 使用其他API函數

?1 獲取系統文件夾

TCHAR? buf[_MAX_PATH];
GetSystemDirectory( buf, _MAX_PATH );
AfxMessageBox(buf);

?

2 獲取Windows目錄

TCHAR? buf[_MAX_PATH];
GetWindowsDirectory( buf, _MAX_PATH );
AfxMessageBox(buf);

?

以上程序在VC2005中調試通過。


創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的获取我的文档“路径的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。