#c# #windows #winforms
Вопрос:
Я создал программу WindowsForms:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace FormChooseFolder
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog1 = new OpenFileDialog
{
InitialDirectory = @"C:",
Title = "Browse Text Files",
CheckFileExists = true,
};
this.openFileDialog1.Multiselect = true;
this.openFileDialog1.Title = "Select Files";
DialogResult dr = this.openFileDialog1.ShowDialog();
if (dr == System.Windows.Forms.DialogResult.OK)
{
TextWriter txt = new StreamWriter("C:\test.txt");
txt.Write(dr);
txt.Close();
}
}
}
}
Который должен записать путь к файлу, выбранному для test.txt но вместо этого он пишет «ОК«.
Есть ли какой-нибудь способ заставить его показывать путь к выбранному файлу таким C:Picturesbanana.png
образом ?
Ответ №1:
Вместо хранения объекта DialogResult
для test.txt
хранения FileName
, выбранного пользователем, например,
DialogResult dr = this.openFileDialog1.ShowDialog();
if (dr == System.Windows.Forms.DialogResult.OK)
{
TextWriter txt = new StreamWriter("C:\test.txt");
txt.Write(dr.FileName); //Use FileName property to get entire file path
txt.Close();
}
Документация MSDN: Журнал файлов.Свойство имени файла
Возвращает или задает строку, содержащую имя файла, выбранное в диалоговом окне файл.
Комментарии:
1. Описание кода серьезности Ошибка состояния подавления строки файла проекта CS1061 «DialogResult» не содержит определения для «Имени файла», и не удалось найти доступный метод расширения «Имя файла», принимающий первый аргумент типа «DialogResult» (отсутствует директива using или ссылка на сборку?) Заполнитель формы
2.
FileName
является ли свойство не методом, можете ли вы показать, как вы вызываетеFileName