MS Access VBA FileSystemObject не принимает путь с пробелами в них - PullRequest
1 голос
/ 19 октября 2011

Как мне обойти ограничение VBA, запрещающее использование пробелов в пути к файлу при использовании FileSystemObject?

Вот мой код:

from= "C:\Users\MyAccount\Desktop\a.txt"
to= "C:\Users\MyAccount\Desktop\Folder Name With Spaces\b.txt"
Dim fso As New FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile from, to

Я уже попробовал хитростьс добавлением «перед любыми пробелами, это не работает. На самом деле всплывает ошибка« Bad FileName or Number ».

Я также пытался заменить любые пробелы на% 20, что также не работает.

Чтобы уточнить, я заранее не знаю путь, его вводит пользователь.

Ответы [ 3 ]

1 голос
/ 12 марта 2015

Нет ограничений на наличие пробелов в именах файлов или путях, как в VBA, так и при использовании FSO. У тебя должна быть какая-то другая проблема.

Например, я не думаю, что FSO создаст папку назначения, если она еще не существует.

Также: вам не нужно использовать Createobject, если вы Dim ... As New ...: ваш объект создается в операторе Dim.

1 голос
/ 21 мая 2019

Мое решение той же проблемы:

Dim folderPath As String
folderPath = "D:\MyData\BackUp\capdat\City Name"
If Len(Dir$((folderPath & "\OLDData" & Format(Date, "-ddmmyyyy") & ".accdb"))) > 0 Then
    Kill (folderPath & "\OLDData" & Format(Date, "-ddmmyyyy") & ".accdb"
Else
    Do something
End if
0 голосов
/ 19 октября 2011

это какое-то время с тех пор, как я создал какой-либо VBA, но я думаю, что вам нужно заключать строки в кавычки, чтобы убрать пробелы в путях, поэтому эта работа такова:

fso.CopyFile """" + from + """", """" + to+ """"

РЕДАКТИРОВАНИЕ:

Этот сайт предложил эту подпрограмму:

Закрытая функция GetQuotedArgument (аргумент ByVal As String) в виде строки Const Quote As String = "" "" Return String.Format ("{0} {1} {0} ", Цитата, аргумент) End Function

давая:

fso.CopyFile GetQuotedArgument(from), GetQuotedArgument(to)

Если вам не придется прибегать к кратким формам имен файлов ... Статья Microsoftпри этом здесь , не уверен, относится ли это к VBA, хотя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...