VBA.Dir文件系统
在VB6代码中,我使用VBA.FileSystem.Dir从目录路径获取文件名。但它返回的是空字符串。请查找下面的代码VBA.Dir文件系统,vba,vb6,Vba,Vb6,在VB6代码中,我使用VBA.FileSystem.Dir从目录路径获取文件名。但它返回的是空字符串。请查找下面的代码 Call getFile.ShowOpen //getFile is CommonDialog Control of VB6 txtFile.Text = getFile.FileTitle //Correct file name is returned If Dir(getFile.filename) == "" Then // Conditions come t
Call getFile.ShowOpen //getFile is CommonDialog Control of VB6
txtFile.Text = getFile.FileTitle //Correct file name is returned
If Dir(getFile.filename) == "" Then
// Conditions come true..But ideally it should not!!!
但该文件位于某个网络位置。是否存在任何权限问题?如果是,如何在getFile.ShowOpen对话框中看到该文件,并且Dir()返回空字符串
关于上述代码中的错误的任何帮助,请考虑以下几点:
dim sTgt$
sTgt = Dir(whatever)
另外,顺便说一句,检查每种类型的替代方法是检查文件
奇怪的是,FileLen不受Hidden/Sys attribs的影响,尽管如果文件不存在,它会出错
所以,(这是非常古老的黑客技术,但代码很方便)
如果您为FileLen声明一个变量
Dim lfLen&
'and have some error coding
On Error resume next
'and then just inspect the target
lfLen = FileLen(stgt)
if lflen > 0 then
... do things
(or if hacking)
... binary open
因为,如果文件不存在,
目录将返回0,
但如果file=archive,hidden,则返回字节
嗯
GarycdFile.FileName的实际值是多少?(提示:使用调试器查找。)文件系统中该位置是否存在文件?(提示:使用资源管理器查找。)是。。。该文件已存在。我可以在getFile.ShowOpen对话框中选择该文件。但该文件存在于其他网络驱动器中。我怀疑VB6是否会使用VBA类型库。VBA是VB的一个子集,而不是相反。VB6应该有自己的文件系统函数(),但是看看您提供的代码片段,我确实想知道cdFile.filename来自哪里?您确定这会返回您期望的值吗?如果改用Dir(txtFile.Text)怎么办?Cindy,我想我们可以在VB6中使用VBA.FileSystem库,因为上面的代码适用于其他文件。很抱歉,它应该是getFile而不是cdFile,并且它正在返回正确的文件路径。无法使用Dir(txtFile.Text),因为它只有文件名而没有文件路径,但文件位于某个网络位置。是否存在任何权限问题?如果是,我如何在getFile.ShowOpen对话框中看到该文件您可以共享getFile.filename的值吗?这是真正的代码吗?文件名的大小写不正确。不要忘记
vbReadOnly
标志。是的,鲍勃,非常正确。我有点空编码,想‘我知道还有另一个参数’,但我相信有些人会注意到。;-)