C окно выбора файла
Окна открытия и сохранения файла представлены классами OpenFileDialog и SaveFileDialog . Они имеют во многом схожую функциональность, поэтому рассмотрим их вместе.
OpenFileDialog и SaveFileDialog имеют ряд общих свойств, среди которых можно выделить следующие:
DefaultExt : устанавливает расширение файла, которое добавляется по умолчанию, если пользователь ввел имя файла без расширения
AddExtension : при значении true добавляет к имени файла расширение при его отсуствии. Расширение берется из свойства DefaultExt или Filter
CheckFileExists : если имеет значение true , то проверяет существование файла с указанным именем
CheckPathExists : если имеет значение true , то проверяет существование пути к файлу с указанным именем
FileName : возвращает полное имя файла, выбранного в диалоговом окне
Filter : задает фильтр файлов, благодаря чему в диалоговом окне можно отфильтровать файлы по расширению. Фильтр задается в следующем формате Название_файлов|*.расширение. Например, Текстовые файлы(*.txt)|*.txt . Можно задать сразу несколько фильтров, для этого они разделяются вертикальной линией |. Например, Bitmap files (*.bmp)|*.bmp|Image files (*.jpg)|*.jpg
InitialDirectory : устанавливает каталог, который отображается при первом вызове окна
Title : заголовок диалогового окна
Отдельно у класса SaveFileDialog можно еще выделить пару свойств:
Чтобы отобразить диалоговое окно, надо вызвать метод ShowDialog() .
Рассмотрим оба диалоговых окна на примере. Добавим на форму текстовое поле textBox1 и две кнопки button1 и button2. Также перетащим с панели инструментов компоненты OpenFileDialog и SaveFileDialog. После добавления они отобразятся внизу дизайнера формы. В итоге форма будет выглядеть примерно так:
Теперь изменим код формы:
По нажатию на первую кнопку будет открываться окно открытия файла. После выбора файла он будет считываться, а его текст будет отображаться в текстовом поле. Клик на вторую кнопку отобразит окно для сохранения файла, в котором надо установить его название. И после этого произойдет сохранение текста из текстового поля в файл.
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Отображает диалоговое окно, позволяющее пользователю открыть файл. Этот класс не наследуется.
Properties
Gets or sets a value indicating whether the dialog box automatically adds an extension to a file name if the user omits the extension.
Gets or sets a value indicating whether this FileDialog instance should automatically upgrade appearance and behavior when running on Windows Vista.
Gets a value indicating whether the component can raise an event.
Gets or sets a value indicating whether the dialog box displays a warning if the user specifies a file name that does not exist.
Gets or sets a value indicating whether the dialog box displays a warning if the user specifies a path that does not exist.
Gets or sets the GUID to associate with this dialog state. Typically, state such as the last visited folder and the position and size of the dialog is persisted based on the name of the executable file. By specifying a GUID, an application can have different persisted states for different versions of the dialog within the same application (for example, an import dialog and an open dialog).
This functionality is not available if an application is not using visual styles or if AutoUpgradeEnabled is set to false .
Gets the IContainer that contains the Component.
Gets the custom places collection for this FileDialog instance.
Gets or sets the default file name extension.
Gets or sets a value indicating whether the dialog box returns the location of the file referenced by the shortcut or whether it returns the location of the shortcut (.lnk).
Gets a value that indicates whether the Component is currently in design mode.
Gets the list of event handlers that are attached to this Component.
Gets or sets a string containing the file name selected in the file dialog box.
Gets the file names of all selected files in the dialog box.
Gets or sets the current file name filter string, which determines the choices that appear in the "Save as file type" or "Files of type" box in the dialog box.
Gets or sets the index of the filter currently selected in the file dialog box.
Gets or sets the initial directory displayed by the file dialog box.
Gets the Win32 instance handle for the application.
Gets or sets a value indicating whether the dialog box allows multiple files to be selected.
Gets values to initialize the FileDialog.
Gets or sets a value indicating whether the read-only check box is selected.
Gets or sets a value indicating whether the dialog box restores the directory to the previously selected directory before closing.
Gets the file name and extension for the file selected in the dialog box. The file name does not include the path.
Gets an array of file names and extensions for all the selected files in the dialog box. The file names do not include the path.
Gets or sets a value indicating whether the Help button is displayed in the file dialog box.
Gets or sets a value indicating whether the dialog box contains a read-only check box.
Gets or sets the ISite of the Component.
Gets or sets whether the dialog box supports displaying and saving files that have multiple file name extensions.
Gets or sets an object that contains data about the control.
Gets or sets the file dialog box title.
Gets or sets a value indicating whether the dialog box accepts only valid Win32 file names.
Комментарии
Этот класс позволяет проверить, существует ли файл и открыть его. Свойство ShowReadOnly определяет, отображается ли в диалоговом окне флажок только для чтения. Свойство ReadOnlyChecked указывает, установлен ли флажок только для чтения.
Большая часть основных функциональных возможностей этого класса находится в FileDialog классе.
В операционной системе справа налево задайте свойство содержащей формы RightToLeft , чтобы RightToLeft.Yes локализовать кнопки "Имя файла", "Открыть" и "Отмена " диалогового окна. Если свойство не задано RightToLeft.Yes, вместо этого используется английский текст.
Если вы хотите предоставить пользователю возможность выбрать папку вместо файла, используйте FolderBrowserDialog вместо нее.
Свойства
Получает или задает значение, указывающее, добавляет ли диалоговое окно открытия или сохранения файла расширение к имени файла автоматически, если пользователь опустил расширение.
Получает или задает значение, указывающее, отображает ли диалоговое окно открытия или сохранения файла предупреждение, если пользователь указал несуществующее имя файла.
Получает или задает значение, указывающее, отображается ли предупреждение, если пользователь вводит неверный путь или имя файла.
Получает или задает список настраиваемых расположений для диалоговых окон.
Получает или задает строковое значение, которое определяет расширение, используемое по умолчанию для фильтрации списка отображаемых файлов.
Получает или задает значение, указывающее, что диалоговое окно возвращает местоположение файла, на который указывает ярлык, или местоположение файла ярлыка (LNK-файла).
Получает или задает строку, содержащую полный путь к файлу, выбранному в диалоговом окне открытия или сохранения файла.
Получает массив, содержащий имена всех выбранных файлов.
Получает или задает строку фильтра, определяющую, какие типы файлов отображаются в диалоговом окне OpenFileDialog или SaveFileDialog.
Получает или задает индекс фильтра, выбранного в настоящий момент в диалоговом окне открытия или сохранения файла.
Получает или задает начальный каталог, отображаемый диалоговым окном открытия или сохранения файла.
Получает или задает параметр, показывающий, позволяет ли диалоговое окно OpenFileDialog пользователям выбирать несколько файлов.
Возвращает общие флаги диалогового окна Win32, используемые диалогами файлов для инициализации.
Получает или задает значение, указывающее, установлен ли окном OpenFileDialog флажок "только чтение".
Это свойство не реализовано.
Получает строку, содержащую только имя выбранного файла.
Получает массив, содержащий по одному безопасному имени для каждого выбранного файла.
Получает или задает значение, указывающее, имеется ли в диалоговом окне OpenFileDialog флажок "только чтение".
Получает или задает объект, связанный с диалоговым окном. Таким образом, обеспечивает возможность присоединить к диалоговому окну произвольный объект.
Получает или задает текст строки заголовка диалогового окна открытия или сохранения файла.
Возвращает или задает значение, указывающее, принимает ли диалоговое окно только допустимые имена файлов Win32.
Methods
Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.
Releases all resources used by the Component.
Releases the unmanaged resources used by the Component and optionally releases the managed resources.
Determines whether the specified object is equal to the current object.
Serves as the default hash function.
Retrieves the current lifetime service object that controls the lifetime policy for this instance.
Returns an object that represents a service provided by the Component or by its Container.
Gets the Type of the current instance.
Defines the common dialog box hook procedure that is overridden to add specific functionality to the file dialog box.
Obtains a lifetime service object to control the lifetime policy for this instance.
Creates a shallow copy of the current Object.
Creates a shallow copy of the current MarshalByRefObject object.
Raises the FileOk event.
Raises the HelpRequest event.
Opens the file selected by the user, with read-only permission. The file is specified by the FileName property.
Defines the owner window procedure that is overridden to add specific functionality to a common dialog box.
Resets all properties to their default values.
Specifies a common dialog box.
Runs a common dialog box with a default owner.
Runs a common dialog box with the specified owner.
Provides a string version of this object.
Использование текста XAML
Этот управляемый класс нельзя объявить в XAML.
Методы
Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.
Освобождает все ресурсы, занятые модулем Component.
Освобождает неуправляемые ресурсы, используемые объектом Component, а при необходимости освобождает также управляемые ресурсы.
Определяет, равен ли указанный объект текущему объекту.
Служит хэш-функцией по умолчанию.
Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра.
Возвращает объект, представляющий службу, предоставляемую классом Component или классом Container.
Возвращает объект Type для текущего экземпляра.
Определяет процедуру обработки общего диалогового окна, переопределенную, чтобы добавить специальные функции в диалоговое окно файла.
Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.
Создает неполную копию текущего объекта Object.
Создает неполную копию текущего объекта MarshalByRefObject.
Открывает выбранный пользователем файл в режиме "только чтение". Файл задается свойством FileName.
Определяет процедуру окна-владельца, которая переопределяется, чтобы добавить специальные функции для общего диалогового окна.
Восстанавливает заданные по умолчанию значения всех свойств.
Указывает общее диалоговое окно.
Запускает общее диалоговое окно с заданным по умолчанию владельцем.
Запускает общее диалоговое окно с указанным владельцем.
Представляет строковую версию этого объекта.
Конструкторы
Инициализирует новый экземпляр класса OpenFileDialog.
Методы
Определяет, достаточны ли разрешения для отображения диалогового окна.
Определяет, равен ли указанный объект текущему объекту.
Служит хэш-функцией по умолчанию.
Возвращает объект Type для текущего экземпляра.
Определяет процедуру обработки стандартного диалогового окна открытия или сохранения файла, переопределенную для добавления в диалоговое окно общих функций.
Создает неполную копию текущего объекта Object.
Открывает поток только на чтение для файла, выбранного пользователем с помощью диалогового окна OpenFileDialog.
Создает массив, содержащий один поток только для чтения для каждого файла, выбранного пользователем в диалоговом окне OpenFileDialog.
Восстанавливает для всех свойств OpenFileDialog значения по умолчанию.
RunDialog(IntPtr) вызывается для отображения диалогового окна открытия или сохранения файла в производном классе, таком как OpenFileDialog или SaveFileDialog.
Отображает общее диалоговое окно.
Отображает общее диалоговое окно.
Возвращает строку, представляющую диалоговое окно открытия или сохранения файла.
Комментарии
На следующем рисунке показана OpenFileDialog Windows Vista.
Начиная с Windows Vista, в диалоговых окнах открытия и сохранения файлов есть панель "Избранные ссылки" в левой части диалогового окна, которая позволяет пользователю быстро перейти в другое расположение. Эти ссылки называются пользовательскими местами. Используйте свойство, CustomPlaces чтобы задать этот список ссылок.
Events
Occurs when the component is disposed by a call to the Dispose() method.
Occurs when the user clicks on the Open or Save button on a file dialog box.
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет общее диалоговое окно, позволяющее пользователю задать имя файла для одного или нескольких открываемых файлов.
Constructors
Initializes an instance of the OpenFileDialog class.
Свойства
Возвращает или задает значение, определяющее, добавляет ли автоматически диалоговое окно расширение к имени файла, если пользователь опускает данное расширение.
Возвращает или задает значение, указывающее, должен ли этот FileDialog экземпляр автоматически обновлять внешний вид и поведение при запуске в Windows Vista.
Возвращает значение, показывающее, может ли компонент вызывать событие.
Возвращает или задает значение, указывающее, отображается ли в диалоговом окне предупреждение, если пользователь указывает несуществующее имя файла.
Возвращает или задает значение, указывающее, отображает ли диалоговое окно предупреждение, если пользователь указывает несуществующий путь.
Получает или задает GUID, связываемый с этим состоянием диалога. Как правило, состояние, такое как последняя посещенная папка, а также расположение и размер диалогового окна, сохраняется с учетом имени исполняемого файла. При указании GUID приложение может иметь разные сохраняемые состояния для разных версий диалогового окна в том же приложении (например, диалоговое окно импорта и диалоговое окно открытия).
Эта функция недоступна, если приложение не использует стили оформления или если для AutoUpgradeEnabled задано значение false .
Возвращает объект IContainer, который содержит коллекцию Component.
Получает коллекцию пользовательских размещений для этого экземпляра FileDialog.
Возвращает или задает расширение имени файла по умолчанию.
Возвращает или задает значение, указывающее, возвращает ли диалоговое окно расположение файла, представленного ярлыком, или возвращает расположение самого ярлыка (.lnk).
Возвращает значение, указывающее, находится ли данный компонент Component в режиме конструктора в настоящее время.
Возвращает список обработчиков событий, которые прикреплены к этому объекту Component.
Возвращает или задает строку, содержащую имя файла, выбранного в диалоговом окне.
Возвращает имена всех выбранных файлов в диалоговом окне.
Возвращает или задает текущую строку фильтра имен файлов, которая определяет варианты, доступные в поле диалогового окна "Сохранить как файл типа" или "Файлы типа".
Возвращает или задает индекс фильтра, выбранного в настоящий момент в диалоговом окне файла.
Возвращает или задает начальную папку, отображенную диалоговым окном файла.
Возвращает дескриптор экземпляра обработчика Win32 для приложения.
Получает или задает значение, указывающее, можно ли в диалоговом окне выбирать несколько файлов.
Получает значения для инициализации класса FileDialog.
Получает или задает значение, указывающее, установлен ли флажок доступности только для чтения.
Получает или задает значение, указывающее, восстанавливает ли диалоговое окно ранее выбранный каталог в качестве текущего каталога перед закрытием.
Возвращает имя и расширение файла, выбранного в диалоговом окне. Имя файла не включает сведения о пути.
Возвращает массив имен и расширений файлов для всех выбранных в диалоговом окне файлов. Имена файлов не включают сведений о пути.
Возвращает или задает значение, определяющее, отображается ли кнопка Справка в диалоговом окне работы с файлами.
Получает или задает значение, указывающее, имеется ли в диалоговом окне флажок "доступно только для чтения".
Получает или задает ISite объекта Component.
Возвращает или задает значение, определяющее, поддерживает ли диалоговое окно отображение и сохранение файлов, которые содержат несколько расширений имени.
Получает или задает объект, содержащий данные элемента управления.
Возвращает или задает заголовок диалогового окна файла.
Возвращает или задает значение, указывающее, принимает ли диалоговое окно только допустимые имена файлов Win32.
Examples
The following code example creates an OpenFileDialog, sets several properties to define the file extension filter and dialog behavior, and displays the dialog box using the CommonDialog.ShowDialog method. The example requires a form with a Button placed on it and a reference to the System.IO namespace added to it.
Конструкторы
Инициализирует экземпляр класса OpenFileDialog.
Примеры
В следующем примере кода создается OpenFileDialogобъект, задается несколько свойств для определения фильтра расширения файла и поведения диалога, а также отображается диалоговое окно с помощью CommonDialog.ShowDialog метода. В примере требуется форма с помещенной Button на ней ссылкой и ссылкой на System.IO пространство имен, добавленное в него.
События
Возникает, когда пользователь выбирает имя файла, нажав кнопку Открыть в диалоговом окне OpenFileDialog или кнопку Сохранить в диалоговом окне SaveFileDialog.
На Universal Windows Platform для работы с файлами мы можем использовать специальные диалоговые окна. В каких ситуациях они могут быть нам полезны? Прежде всего когда речь идет об открытии или сохранении файла, и нам нужен простой и понятный визуальный компонент для выбора места файла на устройстве.
Для сохранения файла применяется компонент Windows.Storage.Pickers.FileSavePicker , а для открытия файла .
Для работы с файловыми диалогами определим следующую разметку XAML:
FileOpenPicker и FileSavePicker имеют похожий набор свойств, которые позволяют кастомизировать диалоговые окна:
SuggestedStartLocation : указывает на каталог по умолчанию, который будет открываться в диалоговом окне. В качестве значения можно указать одну из констант перечисления PickerLocationId . Например, каталог Документы - PickerLocationId.DocumentsLibrary
SuggestedFileName : устанавливает имя файла по умолчанию
CommitButtonText : устанавливает текст кнопки, которая и выполняет действие сохранения или открытия
DefaultFileExtension : расширение файла, которое будет добавляться к имени файла при сохранении, если другого расширения не будет указано (только для FileSavePicker)
FileTypeChoices : объект IDictionary, который содержит расширения файлов и их описания (только для FileSavePicker)
FileTypeFilter : объект List, который содержит список доступных расширений файлов (только для FileOpenPicker)
ViewMode : формат отображения списка файлов в диалоговом окне при их открытии (только для FileOpenPicker). Принимает одну из двух констант: PickerViewMode.Thumbnail (отображение файлов в виде значков) и PickerViewMode.List (отображение файлов в виде списка)
При сохранении файла мы получаем указанное имя файла с расширением с помощью метода PickSaveFileAsync() :
Этот метод возвращает объект StorageFile, получив который, мы можем сохранять в него различное содержимое.
При открытии файла мы получаем выбранный файл с помощью метода PickSingleFileAsync() :
Этот метод также возвращает объект StorageFile, который представляет выбранный файл.
При этом надо подчеркнуть, что сохранение или открытие файла через диалоговые компоненты будет работать как на десктопах, так и на мобильных устройствах, только на смартфонах диалоговый компонент будет представлять последовательность экранов, на которых нам надо выбрать файл. Например, открытие файла для того же приложения на смартфоне проходит следующие экраны:
События
Возникает при удалении компонента путем вызова метода Dispose().
Происходит при нажатии пользователем кнопки Открыть или Сохранить в диалоговом окне файла.
Происходит при нажатии пользователем кнопки справки в общем диалоговом окне.
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Displays a standard dialog box that prompts the user to open a file. This class cannot be inherited.
Примеры
В следующем примере показано, как создать файл OpenFileDialog , содержащий имя файла по умолчанию и тип расширения.
Remarks
This class allows you to check whether a file exists and to open it. The ShowReadOnly property determines whether a read-only check box appears in the dialog box. The ReadOnlyChecked property indicates whether the read-only check box is checked.
Most of the core functionality for this class is found in the FileDialog class.
On a right-to-left operating system, setting the containing form's RightToLeft property to RightToLeft.Yes localizes the dialog's File Name, Open, and Cancel buttons. If the property is not set to RightToLeft.Yes, English text is used instead.
If you want to give the user the ability to select a folder instead of a file, use FolderBrowserDialog instead.
Читайте также: