當前位置:首頁 » 文件管理 » api選擇文件夾

api選擇文件夾

發布時間: 2022-09-21 21:05:46

1. 用api新建文件夾 T_T

SplitCurPath里裝的是文件還是文件夾?
Kill用來刪文件。
RmDir用來刪文件夾的。(要求該文件夾為空)
如果要強制刪除,請用FSO:

Dim FSO As Object
Set FSO = CreateObject("scripting.filesystemobject")
FSO.deletefolder "c:\sss"

補充:你用的什麼版本的VB?上面的代碼我是調試過才發上來的,另外你的變數SplitCurPath(i)里是完整的路徑嗎?需要完整的路徑。

2. 如何通過API枚舉本機的共享文件夾

  • 看看研究這個例子
    PrivateConstRESOURCE_CONNECTEDAsLong=&H1&
    PrivateConstRESOURCE_GLOBALNETAsLong=&H2&
    PrivateConstRESOURCE_REMEMBEREDAsLong=&H3&
    _DIRECTORY&=&H9
    _DOMAIN&=&H1
    _FILE&=&H4
    _GENERIC&=&H0
    _GROUP&=&H5
    _NETWORK&=&H6
    _ROOT&=&H7
    _SERVER&=&H2
    _SHARE&=&H3
    _SHAREADMIN&=&H8
    PrivateConstRESOURCETYPE_ANYAsLong=&H0&
    PrivateConstRESOURCETYPE_DISKAsLong=&H1&
    PrivateConstRESOURCETYPE_PRINTAsLong=&H2&
    PrivateConstRESOURCETYPE_UNKNOWNAsLong=&HFFFF&
    PrivateConstRESOURCEUSAGE_ALLAsLong=&H0&
    PrivateConstRESOURCEUSAGE_CONNECTABLEAsLong=&H1&
    PrivateConstRESOURCEUSAGE_CONTAINERAsLong=&H2&
    PrivateConstRESOURCEUSAGE_RESERVEDAsLong=&H80000000
    PrivateConstNO_ERROR=0
    PrivateConstERROR_MORE_DATA=234
    PrivateConstRESOURCE_ENUM_ALLAsLong=&HFFFF

    PrivateTypeNETRESOURCE
    dwScopeAsLong
    dwTypeAsLong
    dwDisplayTypeAsLong
    dwUsageAsLong
    pLocalNameAsLong
    pRemoteNameAsLong
    pCommentAsLong
    pProviderAsLong
    EndType

    PrivateTypeNETRESOURCE_REAL
    dwScopeAsLong
    dwTypeAsLong
    dwDisplayTypeAsLong
    dwUsageAsLong
    sLocalNameAsString
    sRemoteNameAsString
    sCommentAsString
    sProviderAsString
    EndType

    "mpr.dll"Alias"WNetAddConnection2A"(lpNetResourceAsNETRESOURCE,ByVallpPasswordAsString,ByVallpUserNameAsString,ByValdwFlagsAsLong)AsLong

    "mpr.dll"Alias"WNetOpenEnumA"(ByValdwScopeAsLong,ByValdwTypeAsLong,ByValdwUsageAsLong,lpNetResourceAsAny,lphEnumAsLong)AsLong

    "mpr.dll"Alias"WNetEnumResourceA"(ByValhEnumAsLong,lpcCountAsLong,lpBufferAsNETRESOURCE,lpBufferSizeAsLong)AsLong

    "mpr.dll"(ByValhEnumAsLong)AsLong

    PrivateDeclareSubCopyMemLib"kernel32"Alias"RtlMoveMemory"(lpToAsAny,lpFromAsAny,ByVallLenAsLong)

    "kernel32"Alias"lstrlenA"(ByVallpStringAsAny)AsLong

    Subgetinfor()
    ConstMAX_RESOURCES=256
    ConstNOT_A_CONTAINER=-1
    DimbFirstTimeAsBoolean
    DimlReturnAsLong
    DimhEnumAsLong
    DimlCountAsLong
    DimlMinAsLong
    DimlLengthAsLong
    DimlAsLong
    DimlBufferSizeAsLong
    DimlLastIndexAsLong
    DimuNetApi(0ToMAX_RESOURCES)AsNETRESOURCE
    DimuNet()AsNETRESOURCE_REAL
    bFirstTime=True

    Do
    IfbFirstTimeThen
    lReturn=WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_DISK,RESOURCEUSAGE_ALL,ByVal0&,hEnum)
    bFirstTime=False
    Else
    IfuNet(lLastIndex).dwUsageAndRESOURCEUSAGE_CONTAINERThen
    lReturn=WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_DISK,RESOURCEUSAGE_ALL,uNet(lLastIndex),hEnum)
    Else
    lReturn=NOT_A_CONTAINER
    hEnum=0
    EndIf
    lLastIndex=lLastIndex+1
    EndIf
    IflReturn=NO_ERRORThen
    lCount=RESOURCE_ENUM_ALL
    Do
    lBufferSize=UBound(uNetApi)*Len(uNetApi(0))/2
    lReturn=WNetEnumResource(hEnum,lCount,uNetApi(0),lBufferSize)
    IflCount>0Then
    ReDimPreserveuNet(0TolMin+lCount-1)AsNETRESOURCE_REAL
    Forl=0TolCount-1

    uNet(lMin+l).dwScope=uNetApi(l).dwScope
    uNet(lMin+l).dwType=uNetApi(l).dwType
    uNet(lMin+l).dwDisplayType=uNetApi(l).dwDisplayType
    uNet(lMin+l).dwUsage=uNetApi(l).dwUsage

    IfuNetApi(l).pLocalNameThen
    lLength=lstrlen(uNetApi(l).pLocalName)
    uNet(lMin+l).sLocalName=Space$(lLength)
    CopyMemByValuNet(lMin+l).sLocalName,ByValuNetApi(l).pLocalName,lLength
    EndIf

    IfuNetApi(l).pRemoteNameThen
    lLength=lstrlen(uNetApi(l).pRemoteName)
    uNet(lMin+l).sRemoteName=Space$(lLength)
    CopyMemByValuNet(lMin+l).sRemoteName,ByValuNetApi(l).pRemoteName,lLength
    EndIf

    IfuNetApi(l).pCommentThen
    lLength=lstrlen(uNetApi(l).pComment)
    uNet(lMin+l).sComment=Space$(lLength)
    CopyMemByValuNet(lMin+l).sComment,ByValuNetApi(l).pComment,lLength
    EndIf

    IfuNetApi(l).pProviderThen
    lLength=lstrlen(uNetApi(l).pProvider)
    uNet(lMin+l).sProvider=Space$(lLength)
    CopyMemByValuNet(lMin+l).sProvider,ByValuNetApi(l).pProvider,lLength
    EndIf
    DoEvents
    Nextl
    EndIf

    lMin=lMin+lCount

    DoEvents

    LoopWhilelReturn=ERROR_MORE_DATA
    EndIf

    IfhEnumThen
    l=WNetCloseEnum(hEnum)
    EndIf

    DoEvents

    LoopWhilelLastIndex<lMin

    cmd2.Visible=False

    IfUBound(uNet)>0Then
    Forl=0ToUBound(uNet)
    SelectCaseuNet(l).dwDisplayType
    CaseRESOURCEDISPLAYTYPE_DIRECTORY&
    List1.AddItem"Directory..."
    CaseRESOURCEDISPLAYTYPE_DOMAIN
    List1.AddItem"Domain..."
    CaseRESOURCEDISPLAYTYPE_FILE
    List1.AddItem"File..."
    CaseRESOURCEDISPLAYTYPE_GENERIC
    List1.AddItem"Generic..."
    CaseRESOURCEDISPLAYTYPE_GROUP
    List1.AddItem"Group..."
    CaseRESOURCEDISPLAYTYPE_NETWORK&
    List1.AddItem"Network..."
    CaseRESOURCEDISPLAYTYPE_ROOT&
    List1.AddItem"Root..."
    CaseRESOURCEDISPLAYTYPE_SERVER
    List1.AddItem"Server..."
    CaseRESOURCEDISPLAYTYPE_SHARE
    List1.AddItem"Share..."
    CaseRESOURCEDISPLAYTYPE_SHAREADMIN&
    List1.AddItem"ShareAdmin..."
    EndSelect
    List1.AddItemuNet(l).sRemoteName&uNet(l).sComment
    List1.Refresh
    DoEvents
    Nextl
    EndIf
    EndSub

    PrivateSubCommand1_Click()
    getinfor
    EndSub

    PrivateSubForm_Unload(CancelAsInteger)
    UnloadMe
    EndSub


3. 在excel vba中如何調用api函數實現快速查找文件名

excel vba調用windows API 快速查找所選擇的文件
excel選中文件名清單、自動從「a1"文件夾中查找相應的文件。
ShellExecuteA,DataObject,Clipboard,find,SendKeys

Private Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpszOp As _
String, ByVal lpszFile As String, ByVal lpszParams As String, _
ByVal lpszDir As String, ByVal FsShowCmd As Long) As Long

Const SW_SHOW = 5

Sub test()
Selection.Copy
Dim MyData As DataObject
Dim sTemp As String, s As String
Set MyData = New DataObject
MyData.GetFromClipboard
sTemp = MyData.GetText
s = Replace(sTemp, vbCrLf, ";")
s = Replace(s, vbTab, ";")
MyData.SetText (s)
MyData.PutInClipboard
ShellExecute 0&, "find", Range("a1"), _
vbNullString, vbNullString, SW_SHOW
Application.Wait (Now + TimeValue("0:00:02"))
SendKeys s & "{ENTER}"
End Sub

4. 怎樣使用api生成windows標准打開文件夾(目錄瀏覽窗口)窗口

To
wgliang(禪院深深):不好意思,應該是這樣。vars
:
string;begin
if
SelectDirectory('請選擇文件夾:','',s)
then
//在
uses
中添加
FileCtrl
edtThePath.Text
:=
s;
//其中
edtThePath

Edit
控制項end;

5. 如圖,在VB中,如何打開這樣的文件夾選擇對話框。用控制項,還是API,謝謝!

打開文件對話框,添加CommonDialog控制項就可以。
添加方法:【工程】-【部件】在部件對話框勾選:Microsoft Common Dialog Control 6.0 (SP3)
這樣控制項添加在工具箱中了,拖動到界面即可。
主要代碼:
CommonDialog1.InitDir = "c:/" '對話框初始目錄
CommonDialog1.Filter = "文本文件 (.txt)|*.txt|圖片(.gif)|*.gif" '設置打開文件類型
CommonDialog1.ShowOpen '打開文件對話框
'CommonDialog1.ShowSave '保存文件對話框
'CommonDialog1.ShowColor '打開顏色設置對話框 等等

6. 如何用API HOOK實現對文件夾訪問的控制(加密解密),求具體步驟或項目文件,本人菜鳥

您說的這個方法我沒有使用過。

對文件夾加密,我使用的是文件夾加密超級大師。

文件夾加密超級大師具有界面漂亮友好、簡單易用、穩定無錯、功能強大和兼容性好等特點。

文件夾加密超級大師加密的文件(夾)可以防止刪除、拷貝和移動。

加密時,在需要加密的文件和文件夾上單擊滑鼠右鍵選擇加密就可以。

解密時,雙擊已加密文件夾輸入正確密碼即可,十分方便。

你可以到網路上搜索下載文件夾加密超級大師,看能不能幫助解決你的這個問題。

熱點內容
存儲過程修改記錄 發布:2024-10-10 08:23:28 瀏覽:58
呱呱編程 發布:2024-10-10 08:12:54 瀏覽:894
androidoa 發布:2024-10-10 08:07:14 瀏覽:894
安卓手機怎麼關掉開了的游戲 發布:2024-10-10 07:50:14 瀏覽:681
idea新建java類 發布:2024-10-10 07:50:12 瀏覽:71
教務處的賬號和密碼是什麼 發布:2024-10-10 07:47:51 瀏覽:790
php種子怎麼下載 發布:2024-10-10 07:39:28 瀏覽:660
陰陽師防禦隊伍怎麼配置 發布:2024-10-10 07:19:52 瀏覽:888
雲存儲測試工具 發布:2024-10-10 07:19:03 瀏覽:466
java的組件 發布:2024-10-10 06:58:30 瀏覽:176