創建多級目錄
- void CreateFolder(char *FilePath)
- {
- char FilePath2[MAX_PATH]="";
- for (int i =0; i< MAX_PATH; i++)
- {
- if (FilePath[i] =='\\'||FilePath[i] =='/')
- {
- DWORD dwAttr=GetFileAttributes(FilePath2);
- if(dwAttr==0xFFFFFFFF) //目錄不存在則創建
- CreateDirectory(FilePath2,NULL);
- }
- FilePath2[i] = FilePath[i];
- }
- }
新建目錄CreateDirectory
第一個參數值爲文件夾名稱,第二個參數值爲安全屬性,一般設置爲NULL即可。如果正確創建,返回值爲1,如果沒有正常創建文件夾,則返回0。
- CString szDir;
- szDir="C:\\temp";//臨時文件夾
- DWORD dwAttr=GetFileAttributes(szDir);
- if(dwAttr==0xFFFFFFFF) //臨時文件夾不存在則創建
- {
- CreateDirectory(szDir,NULL);
- )
- //.........chuli
- RemoveDirectory(szDir);//刪除文件夾
得到運行程序所在路徑全路徑(exe或其他模塊文件名稱,程序目錄):GetModuleFileName。
函數原型:
windows.h
- #include <windows.h>
- #include <stdio.h>
- BOOL CreateSampleService()
- {
- TCHAR szPath[MAX_PATH];
- if( !GetModuleFileName( NULL, szPath, MAX_PATH ) )
- {
- printf("GetModuleFileName failed (%d)\n", GetLastError());
- return FALSE;
- }
- return TRUE;
- }
- <h1><a name="t3"></a>獲取程序當前路徑GetCurrentDirectory(當前進程的當前路徑,即程序實例目錄,會隨着操作的改變而改變)</h1>DWORD GetCurrentDirectory(
- DWORD nBufferLength, // size of directory buffer
- LPTSTR lpBuffer // directory buffer
- );
CFileDialog設置打開默認路徑dlg.m_ofn.lpstrInitialDir="D:\\Program File";
謹記:CFileDialog會改變程序的默認執行路徑,比較穩妥的辦法還是絕對路徑來訪問文件比較好。在程序剛一跑起來的時候,先用GetCurrentDirectory()或是GetModuleFileName()獲得當前可執行文件所在的路徑,並保存起來。以後即使是用CFileDialog改變了當前的路徑,也能很容易地找回來。
- CFileDialog Dlg(TRUE,NULL,NULL,0,"ASCII Data Files(*.asc)|*.asc|所有文件 (*.*)|*.*||");
- char pBuf[MAX_PATH]; //存放路徑的變量
- GetCurrentDirectory(MAX_PATH,pBuf); //獲取程序的當前目錄
- strcat(pBuf,"\\");
- CString strtemp=pBuf;
- Dlg.m_ofn.lpstrInitialDir=pBuf;
-