Возникли проблемы с представлением .InitialFileName с командой FileDialog

Итак, я использую FileDialog, чтобы выбрать папку, полную изображений, которые я помещаю в презентацию PowerPoint, и у меня возникают проблемы с получением правильного начального представления.

Вот что у меня есть

strFolder = InitDir
Set fldr = Application.FileDialog(msoFileDialogFolderPicker)

With fldr
    .Title = "Select a Folder"
    .AllowMultiSelect = False
    .ButtonName = "Select"
    .InitialView = msoFileDialogViewList
    .InitialFileName = "C:\Users\Daniel\My Pictures\" 'using to test code

    If Right(strName, 1) <> "\" Then
        strFolder = strFolder & "\"
    End If
    If .Show <> -1 Then
        Exit Sub
    Else
        strFolder = .SelectedItems(1) & "\"
    End If
End With

Если я исключаю «\» после «Мои рисунки», все папки в моей пользовательской папке «Даниэль» появляются в исходном представлении с изначально выбранным «Мои рисунки», но когда я включаю «\» после, что я предполагаю просто появляется "FileDialogViewList". Как сделать так, чтобы папка "Мои рисунки" открывалась изначально.


person Daniel Diaz    schedule 16.06.2013    source источник


Ответы (2)


Первоначальное имя файла, которое вы передали, неверно, поэтому оно показывает «Мои документы» в качестве исходной папки. Поскольку в случае неправильного исходного имени файла отображается каталог по умолчанию. Попробуйте следующий путь: C:\Documents and Settings\Daniel\My Documents\My Pictures\

person Transformer    schedule 16.06.2013
comment
Для меня этого пути не существовало, это был C:\Documents and Settings\Daniel\My Pictures\, но в итоге он сделал то же самое, что я написал выше. Это похоже на то, что это позволит вам установить начальное имя файла только в двух папках на диске, если это имеет смысл. Как C:\1\2\, но не C:\1\2\3 или больше. Это просто ограничение использования FileDialog или мне еще чего-то не хватает. - person Daniel Diaz; 17.06.2013
comment
вы правы.. Однако я не скажу, что это ограничение ... если папка не существует, то как ее можно назначить в качестве исходного имени файла. Это будет работать для C: \ 1 \ 2 \ 3 \, если по этому пути существует каталог с именем 3. - person Transformer; 18.06.2013
comment
Я понял это после того, как обдумал то, что ты сказал. Когда я проверил свойства одной из папок в «Моих изображениях», в ее пути к файлу использовались «Изображения» вместо «Мои изображения», как показано в представлении папки, и это решило проблему. Спасибо. - person Daniel Diaz; 18.06.2013

У меня была аналогичная проблема, и во время отладки заметил, что в случае, когда путь к файлу или папке совпадает с тем, который задан для объекта диалогового окна файла в момент инициализации этого объекта, начальное имя файла устанавливается не то, которое вы хотите, но в папку документов пользователя. Побороть эту проблему мне помог этот фрагмент кода:

If Not fDialog.InitialFileName = filePath Then
    fDialog.InitialFileName = filePath
End If
person Sharunas Bielskis    schedule 18.10.2017