同题目
解决方案 »
- MYSQL,MMSQL,ORACLE数据库统一的问题
- 能设置picturebox的透明度,SetLayeredWindowAttributes 怎么不行啊??
- 关于ini文件的两个问题
- mshflexgrid + Text 问题 急急急
- 问题求解
- 菜鸟首问:用vb如何打开excel文件?
- isnumeric("2323-")返回True,isnumeric("2324+") too
- 求组画图直线拟合问题
- Access数据库的极限到底是多大,我的程序每个月要追加2万条左右的记录,我真担心.....
- 现有一生成数据库的SQL语句文件,如何利用这些语句自动生成数据库
- 编辑?
- 用installshield制作安装程序,怎么把crystal 4.6打包进去?
Dim fs As New FileSystemObject
If fs.FileExists("C:\12.txt") = True Then
MsgBox "文件存在"
Else
MsgBox "文件不存在"
End If
Dir
语法
Dir[(pathname[, attributes])]
函数:返回一个 String,用以表示一个文件名、目录名或文件夹名称,它必须与指定的模式或文件属性、或磁盘卷标相匹配。
参数
常数 值 描述
vbNormal 0 (缺省) 指定没有属性的文件。
vbReadOnly 1 指定无属性的只读文件
vbHidden 2 指定无属性的隐藏文件
VbSystem 4 指定无属性的系统文件
vbVolume 8 指定卷标文件;如果指定了其它属性,则忽略vbVolume
vbDirectory 16 指定无属性文件及其路径和文件夹。
说明
Dir 支持多字符 (*) 和单字符 (?) 的通配符来指定多重文件。
示例:
if dir("文件")<> "" then
msgbox "文件存在"
else
msgbox "文件不存在"
end if
Dir 函数
返回一个 String,用以表示一个文件名、目录名或文件夹名称,它必须与指定的模式或文件属性、或磁盘卷标相匹配。语法Dir[(pathname[, attributes])]Dir 函数的语法具有以下几个部分:部分 描述
pathname 可选参数。用来指定文件名的字符串表达式,可能包含目录或文件夹、以及驱动器。如果没有找到 pathname,则会返回零长度字符串 ("")。
attributes 可选参数。常数或数值表达式,其总和用来指定文件属性。如果省略,则会返回匹配 pathname 但不包含属性的文件。
设置值attributes 参数的设置可为:常数 值 描述
vbNormal 0 (缺省) 指定没有属性的文件。
vbReadOnly 1 指定无属性的只读文件
vbHidden 2 指定无属性的隐藏文件
VbSystem 4 指定无属性的系统文件
vbVolume 8 指定卷标文件;如果指定了其它属性,则忽略vbVolume
vbDirectory 16 指定无属性文件及其路径和文件夹。
注意 这些常数是由 VBA 所指定的,在程序代码中的任何位置,可以使用这些常数来替换真正的数值。说明Dir 支持多字符 (*) 和单字符 (?) 的通配符来指定多重文件。 由于 Macintosh 不支持通配符,使用文件类型指定文件组。可以使用 MacID 函数指定文件类型而不用文件名。比如,下列语句返回当前文件夹中第一个TEXT文件的名称:Dir("SomePath", MacID("TEXT")) 为选中文件夹中所有文件,指定一空串:Dir("")在 Microsoft Windows 中,如果在Dir函数中使用MacID函数,将产生错误。任何大于256的attribute值都被认为是MacID 函数的值。在第一次调用 Dir 函数时,必须指定 pathname,否则会产生错误。如果也指定了文件属性,那么就必须包括 pathname。Dir 会返回匹配 pathname 的第一个文件名。若想得到其它匹配 pathname 的文件名,再一次调用 Dir,且不要使用参数。如果已没有合乎条件的文件,则 Dir 会返回一个零长度字符串 ("")。一旦返回值为零长度字符串,并要再次调用 Dir 时,就必须指定 pathname,否则会产生错误。不必访问到所有匹配当前 pathname 的文件名,就可以改变到一个新的 pathname 上。但是,不能以递归方式来调用 Dir 函数。以 vbDirectory 属性来调用 Dir 不能连续地返回子目录。提示 由于文件名并不会以特别的次序来返回,所以可以将文件名存储在一个数组中,然后再对这个数组排序。
If fso.fileexits(Form3.Text1.Text) = True Then
MsgBox "cunzai "
End If我这样写 为什么说是“用户定义类型未定义”, 难道还要其他的什么定义吗?
是不是Dim fso As New FileSystemObject 有问题难道要自己定义FileSystemObject类型??
下面是我等待一个磁盘文件出现的代码:
'
Function WaitOBJ(ByVal FName As String, Optional ByVal Path As String) As Boolean
Dim fileName As String
Dim Star_Sec As Single
Dim tmp_Sit As Integer
If Path = "" Then Path = App.Path & "\"
tmp_Sit = InStrRev(FName, "\")
If tmp_Sit > 0 Then
Path = Path & Left(FName, tmp_Sit)
FName = Right(FName, Len(FName) - tmp_Sit)
End If
FName = UCase(FName)
Star_Sec = Timer
Do
If Timer < (Star_Sec + 5) Then
fileName = Dir(Path & FName)
fileName = UCase(fileName)
FName = UCase(FName)
If FName = fileName Then
WaitOBJ = False
Exit Do
Else
WaitOBJ = True
End If
Else
WaitOBJ = True
Exit Do
End If
Loop
End Function
'(呵呵,我不是专业的,天生没有算法细胞,别笑话我)
建立日期: 2000年2月17日 最后修改日期:2000年3月16日
所属类别: C/C++ - 磁盘、文件和目录Visual Basic - 磁盘、文件和目录 kvdvm:
编程工具: C++ Builder 4
操作系统: win98
用SHFileOperation删除文件时如何将文件删除到回收站? 回答: SHFileOperation的参数是如下的一个结构:
typedef struct _SHFILEOPSTRUCT { // shfos
HWND hwnd;
UINT wFunc;
LPCSTR pFrom;
LPCSTR pTo;
FILEOP_FLAGS fFlags;
BOOL fAnyOperationsAborted;
LPVOID hNameMappings;
LPCSTR lpszProgressTitle;
} SHFILEOPSTRUCT, FAR *LPSHFILEOPSTRUCT;
设置wFunc为FO_DELETE就是进行删除。如果fFlags成员包括FOF_ALLOWUNDO就是放到回收站,否则就是彻底删除。
古月剑龙问:
Pvb5/pwin98,主要问题:怎样使用回收站功能
1、在下现在遇到了一个文件操作的问题:怎么样把文件移动回收站(删除)? 在下只能在你站上找到XX站有这方面的资料(在下的E文很不好,主要是用169上网)。
2、这次在下最想得到一个演示源代码:在使用删除命令时,用上系统的回收站功能。
回答:
这里是一个例子:
1、先定义一个模块,放入以下语句:
Public Const FO_MOVE As Long = &H1
Public Const FO_COPY As Long = &H2
Public Const FO_DELETE As Long = &H3
Public Const FO_RENAME As Long = &H4
Public Const FOF_MULTIDESTFILES As Long = &H1
Public Const FOF_CONFIRMMOUSE As Long = &H2
Public Const FOF_SILENT As Long = &H4
Public Const FOF_RENAMEONCOLLISION As Long = &H8
Public Const FOF_NOCONFIRMATION As Long = &H10
Public Const FOF_WANTMAPPINGHANDLE As Long = &H20
Public Const FOF_CREATEPROGRESSDLG As Long = &H0
Public Const FOF_ALLOWUNDO As Long = &H40
Public Const FOF_FILESONLY As Long = &H80
Public Const FOF_SIMPLEPROGRESS As Long = &H100
Public Const FOF_NOCONFIRMMKDIR As Long = &H200
Type SHFILEOPSTRUCT
hwnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Long
fAnyOperationsAborted As Long
hNameMappings As Long
lpszProgressTitle As String
End Type
Declare Function SHFileOperation Lib "Shell32.dll" _
Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Declare Function GetTempFileName Lib "kernel32" _
Alias "GetTempFileNameA" (ByVal lpszPath As String, _
ByVal lpPrefixString As String, ByVal wUnique As Long, _
ByVal lpTempFileName As String) As Long
2、再输入下面的程序
Dim FileOperation As SHFILEOPSTRUCT
Dim lReturn As Long
Dim sTempFilename As String * 100
Dim sSendMeToTheBin As String
lReturn = GetTempFileName("c:\", "VB_", 0, sTempFilename)
sSendMeToTheBin = Left(sTempFilename, InStr(sTempFilename, _
Chr$(0)))
With FileOperation
.wFunc = FO_DELETE
.pFrom = sSendMeToTheBin ' 要删除的文件名
.fFlags = FOF_ALLOWUNDO ' 放入回收站
End With
lReturn = SHFileOperation(FileOperation)
MsgBox "现在查看你的回收站,寻找以VB_开头的文件。"
相关问题:
QA001138 "如何删除目录及下面的文件和子目录"
QA001214 "VC中是否有API能对文件操作带通配符"
1 此函数需要用到SHFILEOPSTRUCT结构,故首先将此结构和函数在总体声明处声明如下:
Option Explicit
rivate Type SHFILEOPSTRUCT
hwnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Boolean
hNameMappings As Long
lpszProgressTitle As String
End Type Private Declare Function SHFileOperation Lib "shell32.dll" Alias _
"SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long '两个重要的参数值设定
Private Const FO_DELETE = &H3 '删除文件
Private Const FOF_ALLOWUNDO = &H40 '允许恢复 2 在窗体中加一命令按钮Command1,双击之,写如下代码: '此处用来删除C:\TMP.TXT文件。
Private Sub Command1_Click()
Dim FileOperation As SHFILEOPSTRUCT
Dim lReturn As Long
Dim sTempFileName As String
sTempFileName="c:\tmp.txt"
With FileOperation
.wFunc = FO_DELETE
.pFrom = sTempFileName
.fFlags = FOF_ALLOWUNDO
End With
lReturn = SHFileOperation(FileOperation)
End Sub 3 运行此程序,单击命令按钮,将提示是否将TMP文件放入回收站,选择“是”,然后可打开回收站看是否有此文件。