后台管理其中有一个添加歌手信息和歌曲信息的窗体要点击按钮并上传文件,因为对那些文件流什么的不懂,所以用了老师教的最简单的判断方法,但此方法只是按后缀名判断文件的样式,如果后缀名乱改就不行了!
此时需要用到的控件是OpenFileDialog,OpenFileDialog也是个类,如要用此类必须先引用Using Sysetem.IO命名空间!点击浏览按钮事件之后
string name = ""; string PhotoUrl = "";
private void btnBrowse_Click(object sender, EventArgs e)
{
OpenDialog.Filter = "(*.jpg)|*.jpg";//这段代码必须在ShowDialog打开之前才有用!
if (OpenDialog.ShowDialog() == DialogResult.OK)//这段代码可以直接浏览打开本地计算机文件夹里的文件,并且判断你选中一个文件点击了打开按钮!
{ name = OpenDialog.SafeFileName;//此为相对路径,拿我项目里照片的相对路径做例子,也就是:李宇春.JPG!
PhotoUrl = OpenDialog.FileName;//此代码为绝对路径,拿我照片的绝对路径做例子,意思就是:H:c#窗口应用程序MyKTV最终版singerPhoto李宇春.jpg
Image img = new Bitmap(PhotoUrl);
picBrowse.Image = img; //把照片地址放入控件就可以显示了也可以用image.FromFile();
}
}
//
OpenDialog.Filter = "(*.jpg),(*.png),(*.gif)|*.jpg,*.png,*.gif";会在你浏览的文本框旁多显示一个下拉框“()”括号里是显示给用户看的可以加载的类型,“|”后的是系统要解析的|前后腰对应如果要再添加一个下拉框显示全部可以这么写OpenDialog.Filter = "(*.jpg),(*.png),(*.gif)|*.jpg,*.png,*.gif|(*.全部)|*.*";
//
这个只是取到你未添加到歌手信息里的照片原路径,下面再用查询语句查到你数据库里照片目录的路径+上面取到的照片的相对路径就可以把别的目录下的照片复制到你的程序目录下! string SingerUrl = cmd.ExecuteScalar().ToString();//数据库取到的程序照片目录的路径
File.Copy(PhotoUrl, SingerUrl + "\" + name, true); //因为C#里“”为转义字符所以不能直接显示此时还可以用String.Format()来联接路径,这里的true是布尔类型参数的一个值,如果没有True的话,你的目标路径如有相同的照片是会报错的,有True的话,如果有相同就直接覆盖,不再提示!
============================================================================
还有一个FolderBrowserDialog控件,此控件使用时也需要先引用Using Sysetem.IO命名空间
if (FolderBrowserDialog.ShowDialog() == DialogResult.OK)
{
tbxNewWay.Text = FolderBrowserDialog.SelectedPath;//把选中的路径值赋给这个文本框
}
然后 Directory.Delete(tbxNewWay.Text);
Directory.Move(tbxNowWay.Text, tbxNewWay.Text);
//注释
Directory.Move(string sourceDirName,string destDirName)
Directory.Move(string sourceDirName,string destDirName)方法是把原文件夹里的东西转移到另一个空的文件夹里,并且删除原文件夹.
destDirName目标路径,必须是还没有被创建的文件夹,所以得 Directory.Move(tbxNowWay.Text, tbxNewWay.Text + "\你想转移的新文件夹");手动给创建个文件名,而且这个文件名必须是不存在的。如果程序重复调试文件夹名字没换是会报错的.
如果不想那么麻烦,使用前加上一句Directory.Delete(tbxNewWay.Text);先把选中的文件夹给删除了,再Directory.Move(string sourceDirName,string destDirName)就可以把文件成功转移了!~
反斜杠
,在
windows
系统中用来表示目录。