C# WinForm elige abrir y guardar archivos

Cuando estaba trabajando en un proyecto winform, me encontré con un registro:

abrir un archivo

Usamos OpenFileDialogel control para abrir el cuadro de selección de archivos:

  • Title El título del cuadro de selección se puede establecer a través del atributo
  • El Filter atributo puede establecer el tipo de archivo seleccionado. Este atributo consta de dos partes SVG files (*.svg)|*.svg. La primera parte representa el nombre que se muestra al usuario en el cuadro de selección, y la última parte es el tipo de archivo filtrado por el sistema. Si necesita establecer varios tipos, puede dividir |estos tipos, especiales *.*para todo tipo de archivos:
//创建打开页面
var flgOpenFileDialog = new OpenFileDialog();
//设置标题
flgOpenFileDialog.Title = "请选择文件";
//设置文件的后缀
flgOpenFileDialog.Filter = @"SVG files (*.svg)|*.svg|AI files (*.ai)|*.ai|EPS files (*.eps)|*.eps|DXF files (*.dxf)|*.dxf|All files (*.*)|*.*";

Filter Los atributos también se pueden agregar varias veces a las listas establecidas:

fileDialog.Filter = "All files (*.*)|*.*";
fileDialog.Filter = "SVG files (*.svg)|*.svg";

Cuando el usuario selecciona el archivo, podemos DialogResult.OKresponder a él a través de , y FileNameel archivo seleccionado se puede obtener a través del atributo

if (fileDialog.ShowDialog() == DialogResult.OK)
{
    
    
       // 文件的路径
       string file = fileDialog.FileName;
}

Si el usuario necesita seleccionar varios archivos, puede Multiselect habilitar la selección múltiple configurando el atributo. En este momento, FileNameel atributo obtiene la ruta del primer archivo, y FileNamesel atributo puede obtener todos los archivos seleccionados, y devuelve una matriz:

fileDialog.Multiselect = false;
if (fileDialog.ShowDialog() == DialogResult.OK)
{
    
    
       // 文件的路径
       string[] files = fileDialog.FileNames;
}

guardar documento

Si el usuario quiere abrir una ventana para guardar un archivo, necesita elegir SaveFileDialog este control para operar. Su uso es OpenFileDialogconsistente con . Filter Puede configurar el formato que se puede guardar a través de , y FileNamepodemos configurar el nombre de guardado predeterminado del archivo a través de propiedades Aquí solo necesitamos completar el nombre Eso es todo, no es necesario guardar la ruta del archivo, y algunas otras configuraciones están escritas en los comentarios del código

SaveFileDialog dialog = new SaveFileDialog();
dialog.Filter = "svg文件(*.svg)|*.svg"; ; //设置文件类型
dialog.FileName = "test.svg";
dialog.DefaultExt = "svg"; //设置默认格式(可以不设)
dialog.AddExtension = true; //设置自动在文件名中添加扩展名
dialog.RestoreDirectory = true;//保存对话框是否记忆上次打开的目录 

Al igual que cuando abrimos un archivo, podemos usar para DialogResult.OKsaber que el usuario ha seleccionado, y luego usar FileNameel atributo para obtener la ruta completa de la ubicación para guardar el archivo, y luego escribir los datos a través de IO.

if (dialog.ShowDialog() == DialogResult.OK)
{
    
    
       string save_filename = dialog.FileName; //获得文件路径 
       //举例子,写入一个二进制文件
       BinaryWriter bw = new BinaryWriter(File.Create(save_filename));
       bw.Write(_newBvk);
       bw.Close();
       MessageBox.Show("保存成功!");
}

Si desea hacer algo cuando el usuario anula la selección de la casilla de verificación, puede DialogResult.Cancelpasar

if( dialog.ShowDialog() == DialogResult.Cancel)
{
    
    
// 取消操作
}

Finalización de atributos

Ahora que se utilizan estos dos controles, aprendamos de paso todas sus propiedades, para que puedan ser utilizados más rápidamente después de la conveniencia.El siguiente es el contenido obtenido al consultar la información:

Estos dos atributos se utilizan para determinar el contenido de nuestro filtro, es decir, el contenido de esta posición.El uso específico se ha mencionado anteriormente.

dialog.Filter = "SVG files (*.svg)|*.svg"; //文件筛选器
dialog.FilterIndex = 1; //默认显示哪一个文件筛选器

Vale la pena mencionar que además del uso mencionado anteriormente, también se pueden agregar múltiples filtros de esta manera:

dialog.Filter = "SVG files (*.svg)|*.svg"; 
dialog.Filter = "All files (*.*)|*.*"; 

inserte la descripción de la imagen aquí

Estas dos propiedades están relacionadas con el directorio. La primera se usa para configurar el directorio cuando se abre por primera vez, y la segunda se usa para conservar el estado del último directorio abierto cuando lo abrimos varias veces.

dialog.InitialDirector = "E://"  //对话框的初始目录  
dialog.RestoreDirectory = true;//保存对话框是否记忆上次打开的目录 

Estos tres atributos están relacionados con nuestro nombre de archivo, el primero se usa para establecer si queremos agregar automáticamente una extensión al usuario después de escribir el nombre del archivo, el último es para establecer el contenido de la extensión que generamos automáticamente, y el nombre del archivo es utilizado para Establecemos el nombre de archivo guardado predeterminado:

dialog.AddExtension = true; //设置自动在文件名中添加扩展名
dialog.DefaultExt = ".svg" //设置默认格式
dialog.FileName = "test.svg"; //默认保存的文件名称

Estas dos propiedades se utilizan para definir la información de nuestro cuadro de selección, ya sea para mostrar el botón de ayuda y el título en la esquina superior izquierda:

dialog.ShowHelp  = true // 是不是启动帮助按钮
dialog.Title = "save"  //左上方的标题

Estos tres atributos se usan para la verificación. Los dos primeros se usan para determinar si la ruta ingresada (seleccionada) por el usuario existe (lo que hará que falle el guardado), y el último se usa para determinar si el archivo y la ruta seleccionados are No contiene caracteres no válidos en Windows (hará que falle el guardado)

dialog.CheckFileExists = true; //在对话框返回之前,检查指定文件是否存在
dialog.CheckPathExists = true; //在对话框返回之前,检查指定路径是否存在  
dialog.ValidateNames  = true   //控制对话框检查输入的文件名中是否不含有无效的字符或序列

Se puede encontrar información más detallada en la documentación oficial:

https://learn.microsoft.com/zh-cn/dotnet/desktop/winforms/controls/savefiledialog-component-windows-forms?view=netframeworkdesktop-4.8&redirectedfrom=MSDN

Supongo que te gusta

Origin blog.csdn.net/weixin_46463785/article/details/131458683
Recomendado
Clasificación