<output id="os3gq"><ruby id="os3gq"></ruby></output>

    1. <mark id="os3gq"></mark>
    2. Access交流中心

      北京 | 上海 | 天津 | 重慶 | 廣州 | 深圳 | 珠海 | 汕頭 | 佛山 | 中山 | 東莞 | 南京 | 蘇州 | 無錫 | 常州 | 南通 | 揚州 | 徐州 | 杭州 | 溫州 | 寧波 | 臺州 | 福州 | 廈門 | 泉州 | 龍巖 | 合肥 | 蕪湖 | 成都 | 遂寧 | 長沙 | 株洲 | 湘潭 | 武漢 | 南昌 | 濟南 | 青島 | 煙臺 | 濰坊 | 淄博 | 濟寧 | 太原 | 鄭州 | 石家莊 | 保定 | 唐山 | 西安 | 大連 | 沈陽 | 長春 | 昆明 | 蘭州 | 哈爾濱 | 佳木斯 | 南寧 | 桂林 | ???/a> | 貴陽 | 西寧 | 烏魯木齊 | 包頭 |

      回復 加入收藏帖  復制
      我要提問 帖子上移

      獲得windows常用文件夾路徑

      長風破浪 等級: 普通會員 積分:1 金幣:0 來自:上海Access交流中心 發表于:2019-10-31 14:53:59   已結帖
      樓主

      因為需要寫一個文件復制到【我的文檔】的代碼,請教如何獲得windows中【我的文檔】的路徑

       

      access培訓  誠聘access開發人員

          長風破浪
            獲得社區協助:請教問題(即發帖)11篇,其中獲得解決的6篇;
            協助社區成員:協助他人(即回帖)16篇,其中被設為【最佳答案】的4篇;
            協助我們社區:發布技術文章0篇,邀請了0名新會員注冊本社區(如何邀請會員注冊,詳見:http://www.beijingfeeling.com/sitehelp.asp)。
      Top

      掃描下方工作人員的微信二維碼加微信,邀您加入Access課堂微信群,進入一個技術交際圈:

      網站工作人員微信

      張志 等級:管理員★★★★★ 積分:112388 金幣:42520 來自:上海Access交流中心 發表于2019/10/31 15:35:09 最佳答案
      1樓 得分: 2

      dim strName as string

      strName=GetSysDirPath(CSIDL_PERSONAL) 


      上面的代碼就獲得你要的目錄,但是你要復制下方的代碼到一個模塊中,具體如下:


      Option Explicit
      'SHGetSpecialFolderLocation獲得某一個特殊的目錄的位置,如果函數調用成功返回NOERROR
      '或者一個OLE錯誤
      Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" _
          (ByVal hwndOwner As Long, _
          ByVal nFolder As SHSpecialFolderIDs, _
          pidl As Long) As Long
      
      
      'SHGetPathFromIDList函數將一個Item轉換為文件路徑
      Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" _
          (ByVal pidl As Long, _
          ByVal pszPath As String) As Long
      
      'SHGetFileInfoPidl函數獲得某個文件對象的信息。
      Declare Function SHGetFileInfoPidl Lib "shell32" Alias "SHGetFileInfoA" _
          (ByVal pidl As Long, _
          ByVal dwFileAttributes As Long, _
          psfib As SHFILEINFOBYTE, _
          ByVal cbFileInfo As Long, _
          ByVal uFlags As SHGFI_flags) As Long
      
      
      Public Const MAX_PATH = 260
      Public Const NOERROR = 0
      
      
      Public Enum SHSpecialFolderIDs '列出所有Windows下特殊文件夾的ID
          CSIDL_DESKTOP = &H0         '桌面
          CSIDL_INTERNET = &H1
          CSIDL_PROGRAMS = &H2        '程序
          CSIDL_CONTROLS = &H3
          CSIDL_PRINTERS = &H4
          CSIDL_PERSONAL = &H5        '我的文檔
          CSIDL_FAVORITES = &H6
          CSIDL_STARTUP = &H7         '開始
          CSIDL_RECENT = &H8
          CSIDL_SENDTO = &H9
          CSIDL_BITBUCKET = &HA
          CSIDL_STARTMENU = &HB
          CSIDL_DESKTOPDIRECTORY = &H10
          CSIDL_DRIVES = &H11
          CSIDL_NETWORK = &H12
          CSIDL_NETHOOD = &H13        '網上鄰居
          CSIDL_FONTS = &H14
          CSIDL_TEMPLATES = &H15
          CSIDL_COMMON_STARTMENU = &H16
          CSIDL_COMMON_PROGRAMS = &H17
          CSIDL_COMMON_STARTUP = &H18
          CSIDL_COMMON_DESKTOPDIRECTORY = &H19
          CSIDL_APPDATA = &H1A
          CSIDL_PRINTHOOD = &H1B
          CSIDL_ALTSTARTUP = &H1D
          CSIDL_COMMON_ALTSTARTUP = &H1E
          CSIDL_COMMON_FAVORITES = &H1F
          CSIDL_INTERNET_CACHE = &H20
          CSIDL_COOKIES = &H21
          CSIDL_HISTORY = &H22            '歷史文件夾
      End Enum
      
      Enum SHGFI_flags
          SHGFI_LARGEICON = &H0
          SHGFI_SMALLICON = &H1
          SHGFI_OPENICON = &H2
          SHGFI_SHELLICONSIZE = &H4
          SHGFI_PIDL = &H8
          SHGFI_USEFILEATTRIBUTES = &H10
          SHGFI_ICON = &H100
          SHGFI_DISPLAYNAME = &H200
          SHGFI_TYPENAME = &H400
          SHGFI_ATTRIBUTES = &H800
          SHGFI_ICONLOCATION = &H1000
          SHGFI_EXETYPE = &H2000
          SHGFI_SYSICONINDEX = &H4000
          SHGFI_LINKOVERLAY = &H8000
          SHGFI_SELECTED = &H10000
      End Enum
      
      
      
      Public Type SHFILEINFOBYTE
          hIcon As Long
          iIcon As Long
          dwAttributes As Long
          szDisplayName(1 To MAX_PATH) As Byte
          szTypeName(1 To 80) As Byte
      End Type
      
      Declare Function SHGetFileInfo Lib "shell32" Alias "SHGetFileInfoA" _
          (ByVal pszPath As String, _
          ByVal dwFileAttributes As Long, _
          psfi As SHFILEINFO, _
          ByVal cbFileInfo As Long, _
          ByVal uFlags As SHGFI_flags) As Long
      
      Public Type SHFILEINFO
          hIcon As Long
          iIcon As Long
          dwAttributes As Long
          szDisplayName As String * MAX_PATH
          szTypeName As String * 80
      End Type
      
      
      
      '根據一個特定文件夾對象的ID獲得它的目錄pidl
      Public Function GetPIDLFromFolderID(hOwner As Long, nFolder As SHSpecialFolderIDs) As Long
          Dim pidl As Long
          If SHGetSpecialFolderLocation(hOwner, nFolder, pidl) = NOERROR Then
              GetPIDLFromFolderID = pidl
          End If
      End Function
      
      '獲取文件夾名稱
      Public Function GetDisplayNameFromPIDL(pidl As Long) As String
          Dim sfib As SHFILEINFOBYTE
          If SHGetFileInfoPidl(pidl, 0, sfib, Len(sfib), SHGFI_PIDL Or SHGFI_DISPLAYNAME) Then
              GetDisplayNameFromPIDL = GetStrFromBufferA(StrConv(sfib.szDisplayName, vbUnicode))
          End If
      End Function
      
      '獲取路徑
      Public Function GetPathFromPIDL(pidl As Long) As String
          Dim sPath As String * MAX_PATH
          If SHGetPathFromIDList(pidl, sPath) Then
              GetPathFromPIDL = GetStrFromBufferA(sPath)
          End If
      End Function
      
      '獲取字符串
      Public Function GetStrFromBufferA(sz As String) As String
          If InStr(sz, vbNullChar) Then
              GetStrFromBufferA = Left$(sz, InStr(sz, vbNullChar) - 1)
          Else
              GetStrFromBufferA = sz
          End If
      End Function
      
      '整合以上函數,得到全路徑
      Public Function GetSysDirPath(DirType As SHSpecialFolderIDs) As String
          Dim pid As Long
          Dim name As String
          pid = GetPIDLFromFolderID(0, CSIDL_PERSONAL)
          name = GetPathFromPIDL(pid)
          GetSysDirPath = name & GetDisplayNameFromPIDL(pid)
      End Function



          希望我的回答能解決了您的問題,或者所附上的這些信息對您有所幫助!如有任何疑問或需要進一步幫助,請您直接在本站發貼,我們非常樂意幫助您解決問題!
          如果我的回答已經解決了您的問題,請點擊上方的“最佳答案”,這樣本帖子就不會在“待解決問題區”顯示了,以方便大家對那些正在等待解決的帖子給予關注!
          張志  [協助社區成員回帖2893篇,其中【最佳答案】1156篇;發布技術文章1063篇。]
          UMVSoft在線支持工程師
          http://www.umvsoft.com
          QQ:2851379730 點擊這里給張志發消息
          如果您沒有注冊這個論壇,請單擊下面的鏈接進行注冊,與我在論壇進行交流:
          http://www.beijingfeeling.com/reg/reg.asp?userid=8
          本貼子以“現狀”提供且沒有任何擔保,同時也沒有授予任何權利。
      總記錄:1篇  頁次:1/1 9 1 :
      您還沒有在Access軟件網登錄不能回復帖子
      • 你沒有登錄,請點擊后面鏈接登錄:登錄
      • 如果你沒有注冊,請點擊后面鏈接注冊:注冊,注冊完成后,請再次訪問本頁功能。
       
      湖北11选5