獲取「我的文件」路徑
很多時候「我的文件」位置經常被人移到d盤,如下是獲取「我的文件」路徑:
"stdafx.h
"<
windows.h
>
<
shlobj.h
>
"shell32.lib")
<
iostream
>
intmain(
intargc,
char
*argv)
;
0,_max_path);
lpitemidlist pidl
=null;
shgetspecialfolderlocation(null, csidl_personal,
&pidl);
if(pidl
&&shgetpathfromidlist(pidl, szdocument))
std::cout
<<
m_lpszdefaultdir
<<
std::endl;
printf(
"hello world!/n");
return0;
可以使用shgetspecialfolderlocation函式獲得「我的電腦」所對應的虛擬資料夾的id。然後使用shellexecuteex開啟這個虛擬資料夾。
使用api函式shgetspecialfolderlocation。shlobj.h裡有shgetspecialfolderlocation的原型宣告。這個函式可以幫我們找到windows的桌面目錄、啟動目錄、我的文件目錄等。
shgetspecialfolder需要三個引數。 第乙個引數是hwnd,它指定了"所有者視窗":在呼叫這個函式時可能出現的對話方塊或訊息框。第二個引數是乙個整數id,決定哪個目錄是待查詢目錄,它的取值可能是:
csidl_bitbucket
**站csidl_controls
控制面板
csidl_desktop
windows 桌面desktop
csidl_desktopdirectory
desktop的目錄
csidl_drives
我的電腦
csidl_fonts
字型目錄
csidl_nethood
網路上的芳鄰
csidl_network
網路上的芳鄰虛擬目錄
csidl_personal
我的文件
csidl_printers
印表機csidl_programs
程式組csidl_recent
最近開啟的文件
csidl_sendto
「傳送到」選單項
csidl_startmenu
任務條啟動選單項
csidl_startup
啟動目錄
csidl_templates
文件模板
這裡只是最常用的部分。完整的請參考http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/enums/csidl.asp
。 最後乙個引數是pidl位址。shgetspecialfolderlocation把位址寫到pidl。
下面是乙個例子:
lpitemidlist pidl;
tchar szpath [max_path];
lpmalloc pmalloc;
if( succeeded( shgetspecialfolderlocation ( null, csidl_drives, &pidl )))
} 由於「我的電腦」是虛擬資料夾,所以必須使用shellexecuteex函式,如果是普通資料夾,則可以使用shgetpathfromidlist獲得檔名,然後利用shellexecute函式開啟。例如要開啟「傳送到」資料夾,可以這樣:
if( succeeded( shgetspecialfolderlocation ( null, csidl_sendto, &pidl )))
if( succeeded( shgetmalloc ( &pmalloc )))}
如果是虛擬資料夾,shgetpathfromidlist函式會失敗。
對於普通資料夾也可以使用shgetspecialfolderpath函式,而不使用shgetspecialfolderlocation函式,這樣更簡單些,但執行環境必須是windows 2000以後的作業系統或安裝了ie 4.0以上版本。
獲取系統特殊路徑如 我的文件,開始路徑等
使用api函式shgetspecialfolderlocation。shlobj.h裡有shgetspecialfolderlocation的原型宣告。這個函式可以幫我們找到windows的桌面目錄 啟動目錄 我的文件目錄等。shgetspecialfolder需要三個引數。第乙個引數是hwnd,它...
獲取maya文件以及安裝環境路徑
c users xx documents maya 2017 import osimport maya.cmds as cmds maya version cmds.about version true 4 path os.environ home maya maya version result ...
批處理 獲取當前使用者的「我的文件」
批處理指令碼可以幫我們做大量的重複性操作,如程式編譯等。有時我們需要獲取當前使用者的文件目錄,比如我們開發的program引用了第三方的控制項,但控制項被安裝在了 我的文件 這時候批處理 就需要稍加一點變化,從登錄檔獲取personal鍵值,並賦值給變數user doc,user doc就是我們要的...