(изменено: Дмитрий Гамий, 5 февраля 2013 16:39:07)

Тема: Ошибка "Файл не найден!" в процедуре IDocFiles.AddFile

Имя файла содержит символ "пробел".

Перед добавлением файла в документ обрамляю полный путь к файлу кавычками (пробовал и одинарные, и двойные):

If InStr(FileName, " ") > 0 Then
    FileName = """" & FileName & """"
End If ' If InStr(FileName, " ")

Во время выполнения кода

Set DocFiles = NewDoc.Properties("FILES").AsIDispatch
If Not DocFiles Is Nothing Then
    
    Err.Clear
    On Error Resume Next
    Call DocFiles.AddFile(FileName, -1)
    
    If Err Then
        TCSApp.ShowErrorMessage "Ошибка:" & vbNewLine & Err.Description
    End If
    On Error Goto 0         
End If ' If Not DocFiles Is Nothing

Set DocFiles = Nothing

Возникает ошибка

Файл '"C:\Import\ОСТ 92-0021-87.pdf"' не найден

Пробовал варианты и с AddFileEx - аналогичная ситуация.

Если передавать полный путь к файлу, содержащий пробел, без обрамления кавычками, на AddFile возникает ошибка

Ошибка при работе с файловым сервером

Такое поведение обнаружено в TechnologiCS v.5.7.0.0(10968), оно же повторяется
в TechnologiCS v.6.2.0.0(15917)


Подскажите, пожалуйста, как правильно добавлять в файловый состав документа файлы, содержащие пробел?

P.S. Понятное дело, что можно обойти эту особенность, копируя или переименовывая такие файлы с заменой символа "пробел" символом "подчёркивание". Но это лишняя возня с файлами... А если и путь к файлу содержит "пробел"?

Re: Ошибка "Файл не найден!" в процедуре IDocFiles.AddFile

6.2(15917). Запускаю их файлового состава макрос

Sub FormMacro_Test1(TCSActiveModule)'Test add file
  id = TCSActiveModule.AddFile( "C:\Инструкция по установке пакета обновления.pdf" )  
End Sub

предварительно создаю такой файл на диске. Все работает. Никакого обрамления не надо.

(изменено: Дмитрий Гамий, 6 февраля 2013 09:59:31)

Re: Ошибка "Файл не найден!" в процедуре IDocFiles.AddFile

Олег Зырянов пишет:

Все работает. Никакого обрамления не надо.

Действительно - работает.
Спасибо!
Называется - сам себя перемудрил...

Кстати, а что возвращает AddFile? В справке по API ничего об этом не сказано.

Re: Ошибка "Файл не найден!" в процедуре IDocFiles.AddFile

Да похоже ничего не возвращает (это процедура), видимо просто VBScript без разницы.