//打开文件
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.InitialDirectory = "E:\\";
openFileDialog.Filter = "Md1 File(*.md1)|*.md1";
openFileDialog.RestoreDirectory = true;
openFileDialog.FilterIndex = 1;
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
textBox1.Text = openFileDialog.FileName;
}
//保存文件
SaveFileDialog sfd = new SaveFileDialog();
sfd.InitialDirectory = "E:\\";
sfd.Filter = "jpg文件(*.jpg)|*.jpg|png文件(*.png)|*.png";
if(sfd.ShowDialog() == DialogResult.OK)
{
textBox2.Text = sfd.FileName;
}
除了PrintPreviewDialog外,其他对话框类都派生于抽象基类CommonDialog,这个基类的办法可以经管Windows通用对话框。
ofd.ShowDialog();
FilterIndex属性指定列表框中的默认选项。
设置文件有效性验证ValidateNames,验证用户输入是否是一个有效的Windows文件名。
CheckPathExists:验证路径有效性
CheckFileExists:验证文件有效性
ofd.ValidateNames = true;
ofd.CheckPathExists = true;
ofd.CheckFileExists = true;
自定义帮助信息:
设置对象的ShowHelp属性可以呈现一个帮助按钮,自定义帮助信息。
经由过程HelpRequest事务添加一个处理惩罚法度。
ofd.ShowHelp = true;
ofd.HelpRequest += new EventHandler(ofd_HelpRequest);
private void ofd_HelpRequest(object sender, EventArgs e)
{
MessageBox.Show("我本身定义的帮助信息)";
}
单击帮助按钮就会显示我定义的帮助信息。
设置Multi属性可以使打开文件对话框打开多个文件。
经由过程如下断定可以获得打开文件对话框单击的是哪个按钮。
if(ofd.ShowDialog() == DialogResult.OK)
{
}
保存文件对话框:
应用Title属性设置对话框的题目。
文件扩大名:
AddExtension是一个布尔属性,它定义了文件扩大名是否应主动添加到用户输入的文件名上。若是用户已经输入了一个文件扩大名,就不会添加其它扩大名了。所以若是用户输入了文件名test,就保存文件test.txt,若是输入了test.txt,保存的文件还是test.txt,而不是test.txt.txt。
若是用户没有输入文件扩大名,就应用DefaultExt属性设置的文件扩大名。若是这个属性为空,就应用当前选择的Filter中定义的文件扩大名。若是设置了Filter和DefaultExt,则非论Filter是什么,都应用Default。
同OpenFileDialog一样,具有ValidateNames、CheckFileExists和CheckPathExists三个属性,差别是对于SaveFileDialog,CheckFileExists的默认值是false,默示可以供给新文件名,进行保存。
若是设置CreatePrompt属性为true,就会询问用户是否要创建一个新文件。
若是设置OverwritePrompt属性为true,就会询问用户是否要覆盖一个已有的文件。
进行如下定义一个保存文件对话框后,我们经由过程如下功能可以实现一个另存为的功能:
SaveFileDialog sfd = new SaveFileDialog();
private void miFileSaveAs_Click(object sender, EventArgs e)
{
if(sfd.ShowDialog() == DialogResult.OK)
{
string fileName = sfd.FileName;
SaveFile(fileName);
}
}
protected void SaveFile(string fileName)
{
try
{
Stream stream = File.OpenWrite(fileName);
using(StreamWriter writer = new StreamWriter(stream))
{
writer.Write(textBox1.Text);
}
}
catch(IOException ex)
{
MessageBox.Show(ex.Message,"Simple Editor",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
}
}
打开文件夹
C# Win应用程序打开对话框如何实现打开文件夹而不打开具体的一个文件?也就是打开对话框中最终获取的是一个文件路径,但并没有具体的文件````答案1
System.Windows.Forms.FolderBrowserDialog folder = new System.Windows.Forms.FolderBrowserDialog();
if ( folder.ShowDialog()== DialogResult.OK)
{
this.textBox1.Text = folder.SelectedPath;
}
创建文件夹
if (!Directory.Exists(sPath))
{ Directory.CreateDirectory(sPath);
} |
c# 选择文件夹的对话框
下面来看看具体是怎么实现的。
首先新建一个winform的项目,再新建一个类文件(File->AddNewItem->Class)。
因为FolderNameEditor是在System.Windows.Forms.Design命名空间下的,此命名空间位于动态链接库system.design.dll,所以我们要先在解决方案中添加新的引用(reference)System.Design。然后在代码中添加:
using System.Windows.Forms.Design;
接着,我们新建一个FolderDialog类,此类从FolderNameEditor类继承,在此类中新建一个FolderBrowser类的实例。DisplayDialog(string description)函数用于设置实例fDialog的属性,并且显示浏览文件夹对话框。为了取得文件夹的路径,设置一个Path属性,返回选取文件夹的路径。
代码如下:
public class FolderDialog : FolderNameEditor
{
FolderNameEditor.FolderBrowser fDialog = new
System.Windows.Forms.Design.FolderNameEditor.FolderBrowser();
public FolderDialog()
{
}
public DialogResult DisplayDialog()
{
return DisplayDialog("请选择一个文件夹");
}
public DialogResult DisplayDialog(string description)
{
fDialog.Description = description;
return fDialog.ShowDialog();
}
public string Path
{
get
{
return fDialog.DirectoryPath;
}
}
~FolderDialog()
{
fDialog.Dispose();
}
}
//在winform窗体里写以下代码,可以看看运行效果。
private void Form1_Load(object sender, System.EventArgs e)
{
FolderDialog aa=new FolderDialog ();
aa.DisplayDialog ();
MessageBox.Show (aa.Path);
}
OpenFileDialog控件有以下基本属性
InitialDirectory | 对话框的初始目录 |
Filter | 要在对话框中显示的文件筛选器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)||*.*" |
FilterIndex | 在对话框中选择的文件筛选器的索引,如果选第一项就设为1 |
RestoreDirectory | 控制对话框在关闭之前是否恢复当前目录 |
FileName | 第一个在对话框中显示的文件或最后一个选取的文件 |
Title | 将显示在对话框标题栏中的字符 |
AddExtension | 是否自动添加默认扩展名 |
CheckPathExists | 在对话框返回之前,检查指定路径是否存在 |
DefaultExt | 默认扩展名 |
DereferenceLinks | 在从对话框返回前是否取消引用快捷方式 |
ShowHelp | 启用"帮助"按钮 |
ValiDateNames | 控制对话框检查文件名中是否不含有无效的字符或序列 |
2、 OpenFileDialog控件有以下常用事件
FileOk | 当用户点击"打开"或"保存"按钮时要处理的事件 |
HelpRequest | 当用户点击"帮助"按钮时要处理的事件 |
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace FileDialog
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private string fName;
private bool isFileHaveName = false;
private void 打开SToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.InitialDirectory = "c:\\";//注意这里写路径时要用c:\\而不是c:\
openFileDialog.Filter = "文本文件|*.*|C#文件|*.cs|所有文件|*.*";
openFileDialog.RestoreDirectory = true;
openFileDialog.FilterIndex = 1;
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
fName = openFileDialog.FileName;
File fileOpen = new File(fName);
isFileHaveName = true;
richTextBox1.Text = fileOpen.ReadFile();
richTextBox1.AppendText("");
}
}
}
}
///////////在应用于调用WMP控件时////////////////////
openFileDialog1.Filter = "视频文件(*.avi;*.wmv;*.dat;*.mpg;*.mpeg;*.mov;*.wm;*.wma)|*.avi;*.wmv;*.dat;*.mpg;*.mpeg;*.mov;*.wm;*.wma|音频文件(*.wav;*.mp3;*.snd;*.au;*.midi;*.mid)|*.wav;*.mp3;*.snd;*.au;*.midi;*.mid|所有文件(*.*)|*.*";
//打开的文件类型
if(openFileDialog1.ShowDialog()==DialogResult.OK)
{
axWindowsMediaPlayer1.FileName = openFileDialog1.FileName;
//如果打开的是音频文件,则禁止【视频】菜单组 ,据此可判断打开的文件类型
if(openFileDialog1.FilterIndex == 2)
menuItemVideo.Enabled = false;
else
menuItemVideo.Enabled = true;
}