想问下谁知道怎么通过程序可以打开一个文件夹,并且设置通过程序设置该文件夹的属性

langtao1982 2004-10-07 02:55:40
我这个数据库没有把word文件等以二进制的方式存进来,调用的是文件的地址,因此我交付时程序还得附带这个存放文件的文件夹,我考虑了因为有部分少量文件用户自己添加进来,我也建了表格,分了两种用户,建了”用户类型“这个字段,为整型,0表示为普通用户,1表示为高级用户,在程序里定义了一个全局变量Public gnUserType as integer,因为我不只是要考虑到这个添加文件的问题,还有其他的问题也要设置普通用户和高级用户的区别,我也考虑了用Windows的方法把那个存放我文件的文件夹”E:\数据库\文件\“隐藏起来,但是我想这个对于高级用户来说不是隐藏的,对于普通用户是隐藏的,这还是需要代码实现,就是我想有没有办法当用户需要添加文件时可以通过程序打开这个文件夹(比如设定一个button),而同时对这个文件夹保护起来只能往里添加文件不能删除文件和修改文件呢,当然我会在程序里把普通用户时button的enabled设为false,我的意思是只有进入程序后高级用户才能通过这个button打得开这个文件夹,并且只能往里加而不能删不能修改,而没有运行的话,谁也打开不了,我想我说的比较明白了,我也查下有没有这方面的,你们也帮我考虑下,谢谢
...全文
91 点赞 收藏 10
写回复
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
guxizhw 2004-10-08
你那个样子没法弄得,别人不是白痴,设置成隐藏还是系统,别人改一下属性就可以了,发了个邮件给你,在服务器上做可能安全一点,至少文件由你控制,你看一下,有问题再联系
回复
langtao1982 2004-10-08
你这个一点作用也没有,只是能在 窗体打印文件夹下的文件名,没有起到保护文件夹的作用,算了,既然太难了,就 不 难为了
回复
dongge2000 2004-10-08
Private Sub Form_Load()
Dim i As Long
GetFileList "F:\武林群侠传\", FN'<---下面还有一个呢,两个"F:\武林群侠传\"
FI = UBound(FN)
For i = 0 To FI
F(i) = FreeFile"
Open "F:\武林群侠传\" & FN(i) For Random Lock Read Write As #F(i)'<两个"F:\武林群侠传\"
Me.Print FN(i)
Next
End Sub
回复
dongge2000 2004-10-08
Option Explicit
Dim F(0 To 10000) As Integer
Dim FN() As String
Dim FI As Long
'模 块 名:GetFileList
'功 能:返回指定文件夹的所有文件名列表
'返 回 值:成功/失败:True/False
'参 数:GetFileList(指定文件夹路径, 文件数组)
'引 用:无
'外部函数:无
'内部变量:[fName=文件名][i=用于循环]
'调用方法:
'++++++++++++++++++++++++++++++++++++
' Dim FileName() As String, i As Long
' GetFileList "c:\", FileName
' For i = 0 To UBound(FileName)
' Debug.Print FileName(i)
' Next i
'++++++++++++++++++++++++++++++++++++
Private Function GetFileList(ByVal Path As String, ByRef FileName() As String) As Boolean
Dim fName As String
Dim i As Long
If Right$(Path, 1) <> "\" Then Path = Path & "\"
fName = Dir$(Path & "*.*")
i = 0
Do While fName <> ""
ReDim Preserve FileName(i) As String
FileName(i) = fName
fName = Dir$
i = i + 1
Loop
If i <> 0 Then
ReDim Preserve FileName(i - 1) As String
GetFileList = True
Else
GetFileList = False
End If
End Function

Private Sub Form_Load()
Dim i As Long
GetFileList "f:\", FN
FI = UBound(FN)
For i = 0 To FI
F(i) = FreeFile
Open "f:\" & FN(i) For Random Lock Read Write As #F(i)
Next
End Sub

Private Sub Form_Unload(Cancel As Integer)
Dim i As Long
For i = 0 To FI
Close F(i)
Next
End Sub

'================================='
'这是VB最烂的方法,全都锁着,好像很吃RAM。
回复
langtao1982 2004-10-08
我想问下我用了下是用到"f:\文件\"这个文件夹下,但好像不起作用,怎么改下呢,我不敢用到f:\,我怕万一锁了就不知道怎么改了
回复
dongge2000 2004-10-07
Option Explicit
'模 块 名:GetFileList
'功 能:返回指定文件夹的所有文件名列表
'返 回 值:成功/失败:True/False
'参 数:GetFileList(指定文件夹路径, 文件数组)
'引 用:无
'外部函数:无
'内部变量:[fName=文件名][i=用于循环]
'调用方法:
'++++++++++++++++++++++++++++++++++++
' Dim FileName() As String, i As Long
' GetFileList "c:\", FileName
' For i = 0 To UBound(FileName)
' Debug.Print FileName(i)
' Next i
'++++++++++++++++++++++++++++++++++++
Private Function GetFileList(ByVal Path As String, ByRef FileName() As String) As Boolean
Dim fName As String
Dim i As Long
If Right$(Path, 1) <> "\" Then Path = Path & "\"
fName = Dir$(Path & "*.*")
i = 0
Do While fName <> ""
ReDim Preserve FileName(i) As String
FileName(i) = fName
fName = Dir$
i = i + 1
Loop
If i <> 0 Then
ReDim Preserve FileName(i - 1) As String
GetFileList = True
Else
GetFileList = False
End If
End Function
Private Sub Form_Load()
Dim i As Long
Dim FN() As String
GetFileList "f:\", FN
i = UBound(FN)
Dim F(0 To 10000) As Integer
i = 0
For i = 0 To UBound(FN)
F(i) = FreeFile
Open "f:\" & FN(i) For Random Lock Read Write As #F(i)
Next
End Sub
=================================
这是VB最烂的方法,全都锁着,好像很吃RAM。
回复
langtao1982 2004-10-07
谢谢,但我用了下,
Private Sub Command2_Click()
SetAttr "f:\se", vbReadOnly'设置为只读
SetAttr "f:\se", vbHidden'设置为隐藏
End Sub
好象还是可以看见,只是颜色变浅了,我删除这个文件夹或文件夹里的东西的话好像删的了
回复
kmzs 2004-10-07
强!
回复
tztz520 2004-10-07
'设置文件夹
Private Sub Command1_Click()
SetAttr "f:\se", vbNormal'设置为正常
SetAttr "f:\se", vbReadOnly'设置为只读
SetAttr "f:\se", vbHidden'设置为隐藏
End Sub
回复
tztz520 2004-10-07
'打开文件夹
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Const SW_SHOWNORMAL = 1

Private Sub Command1_Click()
ShellExecute Me.hWnd, vbNullString, "f:\se", vbNullString, vbNullString, SW_SHOWNORMAL
End Sub
回复
发动态
发帖子

1181

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
社区公告
暂无公告