2015-12-16 3 views
1

У меня есть часть кода VBS, где файл (C: \ test.txt) должен быть скопирован во вновь созданную временную папку. Но он не копирует файл. Странно то, что одна и та же функция отлично работает, когда у меня есть дикие символы в исходном параметре (C: \ * est.txt). Любые советы были бы очень полезными.FileSystemObject.CopyFile не может скопировать файл из одной папки в другую

set fso = createobject("Scripting.FileSystemObject") 
if fso.FileExists(src_temp) then 
    'src_temp contains the file path. 

    'Path of the temporary folder 
    Set tmp_fld = fso.GetSpecialFolder(TemporaryFolder) 
    tmp_fld = tmp_fld & "\OldFiles_tmp" 

    'Create the temporary folder if does not exist 
    If Not fso.FolderExists(tmp_fld) Then 
     fso.CreateFolder(tmp_fld) 
    End If 

'Copy the files to temporary path 
On Error Resume Next 
fso.CopyFile src_temp, tmp_fld, True 'last parameter is set as true for overwriting the existing 
On Error Goto 0 

End If 

Я проверял, создана ли временная папка назначения, а также путь и другие материалы. Как дикий символ в пути делает работу CopyFile, и то же самое не работает для полного имени файла. Также как решить эту проблему?

+0

попробуйте добавить имя файла в пункт назначения – WhiteHat

+2

Возможно, это связано с тем, что окна не правильно определяют, должен ли tmp_fld быть файлом или папкой. В этом случае это поможет, если вы замените tmp_fld = tmp_fld & "\ OldFiles_tmp" на tmp_fld = tmp_fld & "\ OldFiles_tmp \" (трейлинг-backspace). Впрочем, это просто дикая догадка. – Syberdoor

+0

'src_temp содержит путь к файлу' ... Включает ли это имя файла? – ManishChristian

ответ

2

Поместите обратную косую черту (\) в конце папки судьбы:

tmp_fld = tmp_fld & "\OldFiles_tmp\" 'note the \ 

Я проверил и он работал на меня. Но, как ни странно, подстановочный знак не работал для меня в исходном исходном коде.