后台管理其中有一个添加歌手信息和歌曲信息的窗体要点击按钮并上传文件,因为对那些文件流什么的不懂,所以用了老师教的最简单的判断方法,但此方法只是按后缀名判断文件的样式,如果后缀名乱改就不行了!

此时需要用到的控件是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项目的更多相关文章

  1. API、Win32 SDK、Win32项目、MFC、Windows窗体应用程序的区别

    [原]API.Win32 SDK.Win32项目.MFC.Windows窗体应用程序的区别 首先来看一下每一个术语的定义: API:Application Programming Interface. ...

  2. Windows窗体应用程序(非Console)使用libuv实现简单的异步WEB服务器

    libuv是一个很强大的异步处理框架(严格意义上不能叫框架,其实就是一组异步函数库,当然框架这东西有各种各样的定义和理解_^...),最初的的目的是用于NODEJS的异步处理,不过因为它是一个独立的项 ...

  3. C#开发Windows窗体应用程序的步骤

    使用C#开发应用程序时,一般包括创建项目.界面设计.设置属性.编写程序代码.保存项目.程序运行等6个步骤. 1.创建项目 在Visual Studio2017开发环境中选择“文件”→“新建”→“项目” ...

  4. 第一章 C#入门(Windows窗体应用程序)(二)

    C#窗体应用程序(二) [案例]设计登录界面,效果如下: [案例实现步骤] 1.新建项目(Windows控制台应用程序 文件→新建→项目:选择“项目类型”为Visual C#,“模板”为Windows ...

  5. 第一章 C#入门 (Windows窗体应用程序)(一)

    我的第一个窗体应用程序(一) [案例说明]  在文本框中显示一行文字“Hello C#!”,单击[显示]按钮后在文本框中显示文字:单击[清除]按钮后清除文本框中的内容. [案例实现步骤] 1.新建项目 ...

  6. 第一章 C#入门 (Windows窗体应用程序)(三)

    [案例] 编写一个Windows窗体应用程序,窗体上有一个文本框和两个按钮([显示]和[清除]按钮). 单击[显示]时,文本框的背景变为蓝色并且居中显示“努力学习C#”: 单击[清除]按钮,文本框的背 ...

  7. Windows窗体应用程序常用的几个类的属性、方法以及事件

    System.Diagnostics.Process 属性 public bool EnableRaisingEvents { get; set; }//获取或设置在进程终止时是否应激发 Exited ...

  8. C#windows窗体应用程序如何自适应大小

    用C#的windows窗体应用程序做界面十分轻松,但是系统默认是没有让控件跟随窗体的大小改变而已改变的.所以需要我们手动去设置让窗体控件随着窗体的大小改变而改变.所以我们只需要将控件选择 然后把Anc ...

  9. 第三章 C#程序结构[3.2 选择结构的应用(Windows窗体应用程序)(四)]

    [案例]设计一个顾客选购商品的系统.其中,顾客身份有两类,一类是VIP,另一类是普通会员:商品种类有3种.分别是上衣.裤子和鞋子.其中,VIP享受8折优惠和商店赠送的礼品,而普通会员都不享受.单击[确 ...

随机推荐

  1. 通过驱动向打印机发送一段(ESC)控制指令

    这个功能看起来挺奇葩的, 写这个是因为有客户在使用驱动连接票据打印机, 但是又要开钱箱, 驱动里只能每张单据都开钱箱, 而这个打印机又不是只打印结帐单 所以就需要用软件控制打印机开钱箱 票据打印机一般 ...

  2. A2DP协议笔记

    1.概述     A2DP(Advanced Audio Distribution Profile)是蓝牙的音频传输协议,典型应用为蓝牙耳机.A2DP协议的音频数据在ACL Link上传输,这与SCO ...

  3. php apc

    APC,全称是Alternative PHP Cache,官方翻译叫”可选PHP缓存”.它为我们提供了缓存和优化PHP的中间代码的框架. APC的缓存分两部分:系统缓存和用户数据缓存. 系统缓存 它是 ...

  4. 【译】Android系统架构

    让我们来快速预览一下整个android系统的架构.从下面的图中我们可以发现,这个架构分为几个不同的层,底层为上一层提供服务.  Linux Kernel android系统建立在一个坚固的基石上:Li ...

  5. Qt 之 去除窗口部件被选中后的焦点虚线框(设置Qt::NoFocus即可)

    http://blog.csdn.net/goforwardtostep/article/details/53420529

  6. 设计模式:迭代器模式(Iterator)

    定  义:提供一种方法顺序访问一个集合对象中的各个元素,而又不暴露该对象的内部元素. C#中实现,foreach 遍历

  7. ArcGIS API for JavaScript开发环境搭建及第一个实例demo

    原文:ArcGIS API for JavaScript开发环境搭建及第一个实例demo ESRI公司截止到目前已经发布了最新的ArcGIS Server for JavaScript API v3. ...

  8. js获取框架(IFrame)的内容

    <frameset id="fr" rows="50%,50%">      <frame name="up" id=&q ...

  9. 使用dd工具对磁盘RAID5和10进行I/O性能测试

    很多情况下大家在对于理论深信不疑,理论是有前提条件的,不是所有的情况下都是正确的.恰逢公司有服务器,故进行了磁盘性能测试,当然测试的结果也只是顺序I/O性能测试(dd机制决定的). 前提条件:(DEL ...

  10. gpt

    gpt 这里sdb是大于2T的那个VD,具体到您的机器,可以先在parted命令中先用list命令列出磁盘,然后用mklabel gpt来转换,具体如下: (parted) select /dev/s ...