后台管理其中有一个添加歌手信息和歌曲信息的窗体要点击按钮并上传文件,因为对那些文件流什么的不懂,所以用了老师教的最简单的判断方法,但此方法只是按后缀名判断文件的样式,如果后缀名乱改就不行了!
此时需要用到的控件是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
系统中用来表示目录。
C#Windows窗体应用程序MyKTV项目的更多相关文章
-
API、Win32 SDK、Win32项目、MFC、Windows窗体应用程序的区别
[原]API.Win32 SDK.Win32项目.MFC.Windows窗体应用程序的区别 首先来看一下每一个术语的定义: API:Application Programming Interface. ...
-
Windows窗体应用程序(非Console)使用libuv实现简单的异步WEB服务器
libuv是一个很强大的异步处理框架(严格意义上不能叫框架,其实就是一组异步函数库,当然框架这东西有各种各样的定义和理解_^...),最初的的目的是用于NODEJS的异步处理,不过因为它是一个独立的项 ...
-
C#开发Windows窗体应用程序的步骤
使用C#开发应用程序时,一般包括创建项目.界面设计.设置属性.编写程序代码.保存项目.程序运行等6个步骤. 1.创建项目 在Visual Studio2017开发环境中选择“文件”→“新建”→“项目” ...
-
第一章 C#入门(Windows窗体应用程序)(二)
C#窗体应用程序(二) [案例]设计登录界面,效果如下: [案例实现步骤] 1.新建项目(Windows控制台应用程序 文件→新建→项目:选择“项目类型”为Visual C#,“模板”为Windows ...
-
第一章 C#入门 (Windows窗体应用程序)(一)
我的第一个窗体应用程序(一) [案例说明] 在文本框中显示一行文字“Hello C#!”,单击[显示]按钮后在文本框中显示文字:单击[清除]按钮后清除文本框中的内容. [案例实现步骤] 1.新建项目 ...
-
第一章 C#入门 (Windows窗体应用程序)(三)
[案例] 编写一个Windows窗体应用程序,窗体上有一个文本框和两个按钮([显示]和[清除]按钮). 单击[显示]时,文本框的背景变为蓝色并且居中显示“努力学习C#”: 单击[清除]按钮,文本框的背 ...
-
Windows窗体应用程序常用的几个类的属性、方法以及事件
System.Diagnostics.Process 属性 public bool EnableRaisingEvents { get; set; }//获取或设置在进程终止时是否应激发 Exited ...
-
C#windows窗体应用程序如何自适应大小
用C#的windows窗体应用程序做界面十分轻松,但是系统默认是没有让控件跟随窗体的大小改变而已改变的.所以需要我们手动去设置让窗体控件随着窗体的大小改变而改变.所以我们只需要将控件选择 然后把Anc ...
-
第三章 C#程序结构[3.2 选择结构的应用(Windows窗体应用程序)(四)]
[案例]设计一个顾客选购商品的系统.其中,顾客身份有两类,一类是VIP,另一类是普通会员:商品种类有3种.分别是上衣.裤子和鞋子.其中,VIP享受8折优惠和商店赠送的礼品,而普通会员都不享受.单击[确 ...
随机推荐
-
远程连接redis
1.在ubuntu上的redis作为服务端,默认是打开的 在redis的配置文件redis.conf中,找到bind localhost注释掉. 注释掉本机,局域网内的所有计算机都能访问. bind ...
-
iOS9 适配
iOS适配的相关内容的整理 之前iOS开发者一直很庆幸自己不用像安卓开发者那样适配各种不同类型的机型,但如今随着iPhone各种机型的改变,适配也成了我们开发中必须会的内容了.首先我们来了解一下对于不 ...
-
C# .net中获取台式电脑中串口设备的名称
来源:http://www.cnblogs.com/hshuzhao/p/4028856.html?utm_source=tuicool&utm_medium=referral .情境: 做项 ...
-
ASP.NET 4.0 forms authentication issues with IE11
As I mentioned earlier, solutions that rely on User-Agent sniffing may break, when a new browser or ...
-
IOS开发-PCH文件的使用
PCH文件存储一些共享的数据,在其他的文件可以直接使用,这样减少程序输入,比如存储宏定义 1.首先新建PCH文件 2.建立完毕 3.在这里找到文件路径 4.进入targets 点击Build Sttt ...
-
Paint on a Wall
Paint on a Wall 题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=4012 搜索+状态压缩 这题刚开始以为是dp(之前写过墙是一 ...
-
swiftmailer时没有设置https的选项,才可以发送成功。在linux下面
<?php $su = 'register'; $ge = '1362836763@qq.com'; $co = 'Please register!'; send_mail($su,$ge,$c ...
-
yaf twig配置
1.安装 TWIG composer require twig/twig2.COMPOSER自动加载的引用修改 BOOTSTRAP.PHP 增加 public function _initAutolo ...
-
nova系列一:虚拟化介绍
一 什么是虚拟化 虚拟化说白了就是本来是一个完整的资源,切分或者说虚拟成多份,让这多份资源都使用起来,物尽其用,减少了浪费,提高了利用率,省了钱. 虚拟化(Virtualization)技术最早出现在 ...
-
POJ 3421 X-factor Chains (因式分解+排列组合)
题意:一条整数链,要求相邻两数前一个整除后一个.给出链尾的数,求链的最大长度以及满足最大长度的不同链的数量. 类型:因式分解+排列组合 算法:因式分解的素因子个数即为链长,链中后一个数等于前一个数乘以 ...