当前位置:首页 » 文件管理 » 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 07:19:52 浏览:886
云存储测试工具 发布:2024-10-10 07:19:03 浏览:464
java的组件 发布:2024-10-10 06:58:30 浏览:176
源代码编译后的二进制文件 发布:2024-10-10 06:57:40 浏览:136
java门户网站 发布:2024-10-10 06:48:26 浏览:991
服务器多cpu如何协同工作 发布:2024-10-10 06:42:12 浏览:997
appium录制脚本 发布:2024-10-10 06:42:12 浏览:604
压缩弹簧行程 发布:2024-10-10 06:35:50 浏览:803
php目录在哪 发布:2024-10-10 06:30:09 浏览:623
安卓手机怎么屏蔽垃圾号码 发布:2024-10-10 06:24:32 浏览:925