VB6 Dir("*.dot") 在一台服务器上查找 .dotx 而在另一台服务器上找不到
VB6 Dir("*.dot") globbing finding .dotx on one server but not the other
我有一个非常奇怪的问题,我希望其他人可能知道。
我有一个包含以下代码的 VB6
Dim filename As String: filename = Dir("c:\somepath\*.dot")
Do Until filename = ""
...add filename to listbox
filename = Dir()
loop
当我 运行 在一个 Windows 服务器 2012 R2(称之为服务器 A)上使用完全相同的程序时,Dir() 将 return 仅以 .dot 结尾的文件。
在另一个 Windows Server 2012 R2(服务器 B)上,Dir() 将另外 return 以 .dotx[=11= 结尾的文件]
两台服务器都装有 Microsoft Office 2013 标准版。两台服务器在文件资源管理器中的 AFAICS 设置相同。
服务器语言环境为英语
服务器 B 语言环境是丹麦语
是否有任何注册表设置可以使文件通配行为像这样?我在特别考虑 DOTX 是新的 Office 模板格式吗?
我运行遇到了类似的问题。由于无法控制我 运行 我的应用程序所在的每台机器上的设置,因此在我的代码中处理它会更容易。我使用 FileSystemObject 来迭代文件夹中的文件,并将文件的扩展名与我要过滤的扩展名进行比较。使用 Dir() 过滤更可靠。
Public Sub ShowFileList(folderToSearch As String, extensionToFind As String)
Dim oFileSystemObject As New FileSystemObject
Dim oFiles As Files
Dim oFile As File
Dim fileName As String
Dim fileExtension As String
Set oFiles = oFileSystemObject.GetFolder(folderToSearch).Files
For Each oFile In oFiles
fileName = oFile.Name
fileExtension = oFileSystemObject.GetExtensionName(fileName)
If StrComp(fileExtension, extensionToFind, vbTextCompare) = 0 Then
Debug.Print fileName
End If
Next oFile
Set oFile = Nothing
Set oFiles = Nothing
Set oFileSystemObject = Nothing
End Sub
Private Sub Command1_Click()
ShowFileList "C:\MyFolder", "dot"
End Sub
如果在未列出 .docx
文件的计算机的文件系统上禁用 8.3 文件名的创建,就会出现您所看到的情况。
您可以通过反转指令使用 fsutil 重新启用此功能 here。
我有一个非常奇怪的问题,我希望其他人可能知道。
我有一个包含以下代码的 VB6
Dim filename As String: filename = Dir("c:\somepath\*.dot")
Do Until filename = ""
...add filename to listbox
filename = Dir()
loop
当我 运行 在一个 Windows 服务器 2012 R2(称之为服务器 A)上使用完全相同的程序时,Dir() 将 return 仅以 .dot 结尾的文件。
在另一个 Windows Server 2012 R2(服务器 B)上,Dir() 将另外 return 以 .dotx[=11= 结尾的文件]
两台服务器都装有 Microsoft Office 2013 标准版。两台服务器在文件资源管理器中的 AFAICS 设置相同。
服务器语言环境为英语 服务器 B 语言环境是丹麦语
是否有任何注册表设置可以使文件通配行为像这样?我在特别考虑 DOTX 是新的 Office 模板格式吗?
我运行遇到了类似的问题。由于无法控制我 运行 我的应用程序所在的每台机器上的设置,因此在我的代码中处理它会更容易。我使用 FileSystemObject 来迭代文件夹中的文件,并将文件的扩展名与我要过滤的扩展名进行比较。使用 Dir() 过滤更可靠。
Public Sub ShowFileList(folderToSearch As String, extensionToFind As String)
Dim oFileSystemObject As New FileSystemObject
Dim oFiles As Files
Dim oFile As File
Dim fileName As String
Dim fileExtension As String
Set oFiles = oFileSystemObject.GetFolder(folderToSearch).Files
For Each oFile In oFiles
fileName = oFile.Name
fileExtension = oFileSystemObject.GetExtensionName(fileName)
If StrComp(fileExtension, extensionToFind, vbTextCompare) = 0 Then
Debug.Print fileName
End If
Next oFile
Set oFile = Nothing
Set oFiles = Nothing
Set oFileSystemObject = Nothing
End Sub
Private Sub Command1_Click()
ShowFileList "C:\MyFolder", "dot"
End Sub
如果在未列出 .docx
文件的计算机的文件系统上禁用 8.3 文件名的创建,就会出现您所看到的情况。
您可以通过反转指令使用 fsutil 重新启用此功能 here。