如何用vb创建一个只读的共享文件夹(xp下)

解决方案 »

  1.   

    参考 http://www.chinavb.net/Article.Asp?id=2164
      

  2.   

    用连接中的方法调用的共享文件夹好象在网络上调用不来啊 提示"没有权限访问网络资源",好象问题有点复杂了,要是想反问这个文件夹还要做什么呢 
    该程序源代码如下
    '共享类型  
    Private  Const  STYPE_ALL              As  Long  =  -1  
    Private  Const  STYPE_DISKTREE    As  Long  =  0  
    Private  Const  STYPE_PRINTQ        As  Long  =  1  
    Private  Const  STYPE_DEVICE        As  Long  =  2  
    Private  Const  STYPE_IPC              As  Long  =  3  
    Private  Const  STYPE_SPECIAL      As  Long  =  &H80000000  
     
    '共享权限  
    Private  Const  ACCESS_READ          As  Long  =  &H1  
    Private  Const  ACCESS_WRITE        As  Long  =  &H2  
    Private  Const  ACCESS_CREATE      As  Long  =  &H4  
    Private  Const  ACCESS_EXEC          As  Long  =  &H8  
    Private  Const  ACCESS_DELETE      As  Long  =  &H10  
    Private  Const  ACCESS_ATRIB        As  Long  =  &H20  
    Private  Const  ACCESS_PERM          As  Long  =  &H40  
    Private  Const  ACCESS_ALL            As  Long  =  ACCESS_READ  Or  _  
                                                                                   ACCESS_WRITE  Or  _  
                                                                                   ACCESS_CREATE  Or  _  
                                                                                   ACCESS_EXEC  Or  _  
                                                                                   ACCESS_DELETE  Or  _  
                                                                                   ACCESS_ATRIB  Or  _  
                                                                                   ACCESS_PERM  
     
    '共享信息  
    Private  Type  SHARE_INFO_2  
       shi2_netname              As  Long                '共享名  
       shi2_type                    As  Long                '类型  
       shi2_re                As  Long                '备注  
       shi2_permissions      As  Long                '权限  
       shi2_max_uses            As  Long                '最大用户  
       shi2_current_uses    As  Long                '  
       shi2_path                    As  Long                '路径  
       shi2_passwd                As  Long                '密码  
    End  Type  
         
    '设置共享  
    Private  Declare  Function  NetShareAdd  Lib  "netapi32"  _  
                                                         (ByVal  ServerName  As  Long,  _  
                                                           ByVal  level  As  Long,  _  
                                                           buf  As  Any,  _  
                                                           parmerr  As  Long)  As  Long  
     
    '删除共享  
    Private  Declare  Function  NetShareDel  Lib  "netapi32.dll"  _  
                                                         (ByVal  ServerName  As  Long,  _  
                                                           ByVal  ShareName  As  Long,  _  
                                                           ByVal  dword  As  Long)  As  Long  
                                               
    '设置共享  
    Private  Sub  Command1_Click()  
     
         Dim  success  As  Long  
                                   
         success  =  ShareAdd("\\XP","C:\","DOWNLOAD","资源目录","")    
                                                 
    End  Sub  
     
    '删除共享  
    Private  Sub  Command2_Click()  
         Dim  success  As  Long  
                                   
         success  =  DelShare("\\XP","DOWNLOAD")  
           
    End  Sub  
     
    '设置共享(返回0  为成功)  
    '参数:  
    'sServer                    计算机名  
    'sSharePath              要共享路径  
    'sShareName              显示的共享名  
    'sShareRe          备注  
    'sSharePw                  密码  
    Private  Function  ShareAdd(sServer  As  String,  _  
                                                       sSharePath  As  String,  _  
                                                       sShareName  As  String,  _  
                                                       sShareRe  As  String,  _  
                                                       sSharePw  As  String)  As  Long  
           
         Dim  lngServer      As  Long  
         Dim  lngNetname    As  Long  
         Dim  lngPath          As  Long  
         Dim  lngRe      As  Long  
         Dim  lngPw              As  Long  
         Dim  parmerr        As  Long  
         Dim  si2                As  SHARE_INFO_2  
           
         lngServer  =  StrPtr(sServer)            '转成地址  
         lngNetname  =  StrPtr(sShareName)  
         lngPath  =  StrPtr(sSharePath)  
           
         '如果有备注信息  
         If  Len(sShareRe)  >  0  Then  
               lngRe  =  StrPtr(sShareRe)  
         End  If  
           
         '如果有密码  
         If  Len(sSharePw)  >  0  Then  
               lngPw  =  StrPtr(sSharePw)  
         End  If  
                 
       '初始化共享信息  
         With  si2  
               .shi2_netname  =  lngNetname  
               .shi2_path  =  lngPath  
               .shi2_re  =  lngRe  
               .shi2_type  =  STYPE_DISKTREE  
               .shi2_permissions  =  ACCESS_ALL  
               .shi2_max_uses  =  -1  
               .shi2_passwd  =  lngPw  
         End  With  
                                                         
       '设置共享(用户名,共享类型,共享信息,)  
         ShareAdd  =  NetShareAdd(lngServer,  _  
                                                       2,  _  
                                                       si2,  _  
                                                       parmerr)  
                                                         
    End  Function  
     
    '删除共享(返回0  表示成功)  
    '参数:  
    'sServer              计算机名  
    'sShareName        共享名  
    Private  Function  DelShare(sServer  As  String,  _  
                                                       sShareName  As  String)  As  Long  
           
         Dim  lngServer      As  Long              '计算机名  
         Dim  lngNetname    As  Long              '共享名  
     
         lngServer  =  StrPtr(sServer)            '转成地址  
         lngNetname  =  StrPtr(sShareName)  
     
         '删除共享  
         DelShare  =  NetShareDel(lngServer,  lngNetname,  0)  
     
    End  Function
      

  3.   

    我也遇到过,我怀疑是NTFS分区的问题,可又不知道怎么解决,
    你要是解决了给我一份,我要是有办法也给你一份