由于要做一个本地文件管理系统的程序,想创建一个隐藏的文件夹,要求:
1、该文件夹只能由我的程序来访问,对用户是不可见的,即使系统内设定“显示所有文件和文件夹”以及取消“隐藏受保护的系统文件”。
2、在当前系统内或是其他系统内(如果隐藏文件夹是放在移动硬盘上的)用资源管理器或是“运行”不能找到该文件夹。
3、最好在DOS下也不可见。请各位高手给个意见。
能提供有效核心代码者可另外给分200,测试有效后立即给分。

解决方案 »

  1.   

    我是在XP  下
    Option Explicit
    '引用文件 Microsoft Scriting Runtime
    Dim Fso As FileSystemObject
    Dim Fol As Folder
    Private Sub Command1_Click()
       Set Fso = New FileSystemObject
       Set Fol = Fso.GetFolder("D:\FoxBin")
       Fol.Attributes = 3
    End Sub
    Normal       0                  Normal file. No attributes are set. 
    ReadOnly     1                  Read-only file. Attribute is read/write. 
    Hidden       2                  Hidden file. Attribute is read/write. 
    System       4                  System file. Attribute is read/write. 
    Volume       8                  Disk drive volume label. Attribute is read-only. 
    Directory    16                 Folder or directory. Attribute is read-only. 
    Archive      32                 File has changed since last backup. Attribute is read/write. 
    Alias        64                 Link or shortcut. Attribute is read-only. 
    Compressed   128                Compressed file. Attribute is read-only. 
    Fol.Attributes = 3    这个值按照上面的表格自己随便得到!看你自己的要求了!
      

  2.   

    为了程序的完善,不要忘记使用完毕后 set fso = nothing 等扫尾工作
      

  3.   

    to:ZOU_SEAFARER(国际海员) 刚测试了一下,这个代码只是修改了文件夹的属性,改为隐藏和只读后,更改系统设置“显示所有文件和文件夹”后,在系统里还是能看的出来的,只是文件夹图标是暗的,表示具有隐藏属性。
    我的意思是我的程序能完全访问指定的文件夹,但是用户是看不到该文件夹的,或是不可访问,主要是为了防止用户误操作,删除被管理的文件。
      

  4.   

    在NT下可以hook api(挂接ZwQueryDirectoryFile)这有一篇文章你可以参考一下:
    http://henryzc.cnblogs.com/archive/2005/03/14/118241.aspx
    关于在vb中拦截api可以参考:
    www.hosp.ncku.edu.tw/~cww/html/q00553.html