FileDialog Класс

Определение

Отображает диалоговое окно, с помощью которого пользователь может выбрать файл.

public ref class FileDialog abstract : System::Windows::Forms::CommonDialog
public abstract class FileDialog : System.Windows.Forms.CommonDialog
type FileDialog = class
    inherit CommonDialog
Public MustInherit Class FileDialog
Inherits CommonDialog
Наследование
Производный

Примеры

В следующем примере кода используется OpenFileDialog реализация FileDialog и иллюстрируется создание, установка свойств и отображение диалогового окна. В примере используется ShowDialog метод для отображения диалогового окна и возврата DialogResult. В этом примере требуется форма с размещенным на ней элементом ButtonSystem.IO и пространством имен, добавленным в него.

private:
   void button1_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      Stream^ myStream;
      OpenFileDialog^ openFileDialog1 = gcnew OpenFileDialog;

      openFileDialog1->InitialDirectory = "c:\\";
      openFileDialog1->Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
      openFileDialog1->FilterIndex = 2;
      openFileDialog1->RestoreDirectory = true;

      if ( openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK )
      {
         if ( (myStream = openFileDialog1->OpenFile()) != nullptr )
         {
            // Insert code to read the stream here.
            myStream->Close();
         }
      }
   }
var fileContent = string.Empty;
var filePath = string.Empty;

using (OpenFileDialog openFileDialog = new OpenFileDialog())
{
    openFileDialog.InitialDirectory = "c:\\";
    openFileDialog.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
    openFileDialog.FilterIndex = 2;
    openFileDialog.RestoreDirectory = true;

    if (openFileDialog.ShowDialog() == DialogResult.OK)
    {
        //Get the path of specified file
        filePath = openFileDialog.FileName;

        //Read the contents of the file into a stream
        var fileStream = openFileDialog.OpenFile();

        using (StreamReader reader = new StreamReader(fileStream))
        {
            fileContent = reader.ReadToEnd();
        }
    }
}

MessageBox.Show(fileContent, "File Content at path: " + filePath, MessageBoxButtons.OK);
Private Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim myStream As Stream = Nothing
    Dim openFileDialog1 As New OpenFileDialog()

    openFileDialog1.InitialDirectory = "c:\"
    openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
    openFileDialog1.FilterIndex = 2
    openFileDialog1.RestoreDirectory = True

    If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
        Try
            myStream = openFileDialog1.OpenFile()
            If (myStream IsNot Nothing) Then
                ' Insert code to read the stream here.
            End If
        Catch Ex As Exception
            MessageBox.Show("Cannot read file from disk. Original error: " & Ex.Message)
        Finally
            ' Check this again, since we need to make sure we didn't throw an exception on open.
            If (myStream IsNot Nothing) Then
                myStream.Close()
            End If
        End Try
    End If
End Sub

Комментарии

FileDialog — это абстрактный класс, содержащий общее поведение для OpenFileDialog классов и SaveFileDialog . Он не предназначен для непосредственного использования, но содержит общее поведение для этих двух классов. Невозможно создать экземпляр FileDialog. Хотя класс объявлен открытым, наследовать от него нельзя, так как он содержит внутренние абстрактные методы. Чтобы создать диалоговое окно для выбора или сохранения файла, используйте OpenFileDialog или SaveFileDialog.

FileDialog — модальное диалоговое окно; Поэтому при отображении он блокирует остальную часть приложения, пока пользователь не выберет файл. Если диалоговое окно отображается модально, ввод (нажатие клавиатуры или мыши) не может происходить, кроме объектов в диалоговом окне. Программа должна скрыть или закрыть диалоговое окно (обычно в ответ на какое-либо действие пользователя), прежде чем можно будет ввести данные в вызывающую программу.

Внимание!

При использовании классов, производных от FileDialog, таких как OpenFileDialog и SaveFileDialog, избегайте использования строковых литералов, содержащих абсолютные пути. Вместо этого динамически получите путь с помощью одного или нескольких методов, описанных в следующей таблице.

Если вы хотите разрешить пользователям выбирать папку вместо файла, используйте FolderBrowserDialog.

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

Путь или категория программы Класс и члены для использования
Стандартные пути Windows, такие как Program Files, MyDocuments, desktop и т. д. Класс System.Environment является наиболее полным источником для них, либо с помощью статических методов, таких как SystemDirectory, либо с помощью GetFolderPath метода , используя одно из перечисленных значений Environment.SpecialFolder .
Пути, связанные с текущим приложением Класс Application имеет статические члены для получения определенных путей, таких как StartupPath, ExecutablePath, LocalUserAppDataPathи CommonAppDataPath.

Метод GetTempPathSystem.IO.Path объекта возвращает путь к временной папке.

Метод GetCurrentDirectorySystem.IO.Directory класса возвращает текущий каталог выполнения приложения.

Свойство RootDirectoryDriveInfo класса представляет корневой каталог указанного диска.
Пути, хранящиеся в параметрах приложения Доступ к соответствующему свойству параметров приложений класса оболочки, производного от ApplicationSettingsBase. Дополнительные сведения см. в разделе Параметры приложения для Windows Forms.
Хранилище реестра Некоторые приложения хранят сведения о каталоге в реестре. Класс Application имеет CommonAppDataPath свойства и LocalUserAppDataPath , которые разрешаются в RegistryKey значение .
приложения ClickOnce Для приложений ClickOnce используйте Application члены класса, такие как UserAppDataPath, которые возвращают указатель на каталог данных ClickOnce. Дополнительные сведения см. в разделе Доступ к локальным и удаленным данным в приложениях ClickOnce.
Международные приложения Для международных приложений извлеките относительный путь из строкового ресурса в приложении с помощью System.Resources.ResourceReader класса . Дополнительные сведения о глобализации и локализации см. в разделе Глобализация и локализация.

Обратите внимание, что полный путь можно создать с помощью одного или нескольких описанных методов. Например, GetFolderPath метод можно использовать для получения пути к папке MyDocuments, а затем параметр приложения можно использовать для добавления относительной части подкаталога.

Класс System.IO.Path содержит статические члены, помогающие управлять строками абсолютных и относительных путей, тогда как классы System.IO.File и System.IO.Directory имеют статические члены, которые фактически управляют файлами и каталогами соответственно.

Важно!

Если пользователь приложения изменяет папку в FileDialog, то текущий рабочий каталог приложения устанавливается в расположение, указанное FileDialogв . Чтобы избежать этого, присвойте свойству RestoreDirectory значение true.

Поля

EventFileOk

Является владельцем событием FileOk.

Свойства

AddExtension

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

AddToRecent

Возвращает или задает значение, указывающее, добавляет ли диалоговое окно открываемый или сохраненный файл в список последних.

AutoUpgradeEnabled

Возвращает или задает значение, указывающее, должен ли этот FileDialog экземпляр автоматически обновлять внешний вид и поведение при работе в Windows Vista.

CanRaiseEvents

Возвращает значение, показывающее, может ли компонент вызывать событие.

(Унаследовано от Component)
CheckFileExists

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

CheckPathExists

Возвращает или задает значение, указывающее, отображает ли диалоговое окно предупреждение, если пользователь указывает несуществующий путь.

ClientGuid

Получает или задает GUID, связываемый с этим состоянием диалога. Как правило, состояние, такое как последняя посещенная папка, а также расположение и размер диалогового окна, сохраняется с учетом имени исполняемого файла. При указании GUID приложение может иметь разные сохраняемые состояния для разных версий диалогового окна в том же приложении (например, диалоговое окно импорта и диалоговое окно открытия).

Эта функция недоступна, если приложение не использует стили оформления или если для AutoUpgradeEnabled задано значение false.

Container

Возвращает объект IContainer, который содержит коллекцию Component.

(Унаследовано от Component)
CustomPlaces

Получает коллекцию пользовательских размещений для этого экземпляра FileDialog.

DefaultExt

Возвращает или задает расширение имени файла по умолчанию.

DereferenceLinks

Возвращает или задает значение, указывающее, возвращает ли диалоговое окно расположение файла, представленного ярлыком, или возвращает расположение самого ярлыка (.lnk).

DesignMode

Возвращает значение, указывающее, находится ли данный компонент Component в режиме конструктора в настоящее время.

(Унаследовано от Component)
Events

Возвращает список обработчиков событий, которые прикреплены к этому объекту Component.

(Унаследовано от Component)
FileName

Возвращает или задает строку, содержащую имя файла, выбранного в диалоговом окне.

FileNames

Возвращает имена всех выбранных файлов в диалоговом окне.

Filter

Возвращает или задает текущую строку фильтра имен файлов, которая определяет варианты, доступные в поле диалогового окна "Сохранить как файл типа" или "Файлы типа".

FilterIndex

Возвращает или задает индекс фильтра, выбранного в настоящий момент в диалоговом окне файла.

InitialDirectory

Возвращает или задает начальную папку, отображенную диалоговым окном файла.

Instance

Возвращает дескриптор экземпляра обработчика Win32 для приложения.

OkRequiresInteraction

Возвращает или задает значение, указывающее, отключена ли кнопка ОК диалогового окна, пока пользователь не перейдет по представлению или не изменит имя файла (если применимо).

Options

Получает значения для инициализации класса FileDialog.

RestoreDirectory

Получает или задает значение, указывающее, восстанавливает ли диалоговое окно ранее выбранный каталог в качестве текущего каталога перед закрытием.

ShowHelp

Возвращает или задает значение, определяющее, отображается ли кнопка Справка в диалоговом окне работы с файлами.

ShowHiddenFiles

Возвращает или задает значение, указывающее, отображается ли в диалоговом окне скрытые и системные файлы.

ShowPinnedPlaces

Возвращает или задает значение, указывающее, отображаются ли элементы, отображаемые по умолчанию в области навигации представления.

Site

Получает или задает ISite объекта Component.

(Унаследовано от Component)
SupportMultiDottedExtensions

Возвращает или задает значение, определяющее, поддерживает ли диалоговое окно отображение и сохранение файлов, которые содержат несколько расширений имени.

Tag

Получает или задает объект, содержащий данные элемента управления.

(Унаследовано от CommonDialog)
Title

Возвращает или задает заголовок диалогового окна файла.

ValidateNames

Возвращает или задает значение, указывающее, принимает ли диалоговое окно только допустимые имена файлов Win32.

Методы

CreateObjRef(Type)

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.

(Унаследовано от MarshalByRefObject)
Dispose()

Освобождает все ресурсы, занятые модулем Component.

(Унаследовано от Component)
Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом Component, а при необходимости освобождает также управляемые ресурсы.

(Унаследовано от Component)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetLifetimeService()
Устаревшие..

Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра.

(Унаследовано от MarshalByRefObject)
GetService(Type)

Возвращает объект, представляющий службу, предоставляемую классом Component или классом Container.

(Унаследовано от Component)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
HookProc(IntPtr, Int32, IntPtr, IntPtr)

Определяет процедуру обработки общего диалогового окна, переопределенную, чтобы добавить специальные функции в диалоговое окно файла.

InitializeLifetimeService()
Устаревшие..

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.

(Унаследовано от MarshalByRefObject)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
MemberwiseClone(Boolean)

Создает неполную копию текущего объекта MarshalByRefObject.

(Унаследовано от MarshalByRefObject)
OnFileOk(CancelEventArgs)

Вызывает событие FileOk.

OnHelpRequest(EventArgs)

Вызывает событие HelpRequest.

(Унаследовано от CommonDialog)
OwnerWndProc(IntPtr, Int32, IntPtr, IntPtr)

Определяет процедуру окна-владельца, которая переопределяется, чтобы добавить специальные функции для общего диалогового окна.

(Унаследовано от CommonDialog)
Reset()

Восстанавливает заданные по умолчанию значения всех свойств.

RunDialog(IntPtr)

Указывает общее диалоговое окно.

ShowDialog()

Запускает общее диалоговое окно с заданным по умолчанию владельцем.

(Унаследовано от CommonDialog)
ShowDialog(IWin32Window)

Запускает общее диалоговое окно с указанным владельцем.

(Унаследовано от CommonDialog)
ToString()

Представляет строковую версию этого объекта.

События

Disposed

Возникает при удалении компонента путем вызова метода Dispose().

(Унаследовано от Component)
FileOk

Происходит при нажатии пользователем кнопки Открыть или Сохранить в диалоговом окне файла.

HelpRequest

Происходит при нажатии пользователем кнопки справки в общем диалоговом окне.

(Унаследовано от CommonDialog)

Применяется к

См. также раздел