当前位置: 首页 > news >正文

应该知道的网站中山专业做网站的公司

应该知道的网站,中山专业做网站的公司,北京美的网站,欧美做爰爰爰爰网站最近在紧张的学习C##xff0c;说实话对C#之前没有太多的接触过#xff0c;只知道C#的特性与java很相似#xff0c;接触了之后才发现C#跟java相比区别不是很多#xff0c;但它是一门实现程序能力比Java还要好的语言#xff08;仅代表个人观点#xff09;。 有许多新手在…最近在紧张的学习C#说实话对C#之前没有太多的接触过只知道C#的特性与java很相似接触了之后才发现C#跟java相比区别不是很多但它是一门实现程序能力比Java还要好的语言仅代表个人观点。 有许多新手在学习编程语言的时候都会在递归上面卡住理解和应用起来会十分的吃力所以我就自己尝试用递归写了一个很简单很简单很简单的文件管理程序说它简单是因为他真的没有什么难度都是很底层的循环和递归也就只有130多行代码只是希望能够帮助大家理解应用递归。如果你一点编程基础木有那请不要直接来尝试递归和各种循环请一步步扎实的从头学起。 这个很简单很简单很简单的文件管理程序提供如下几个功能检索用户输入路径下文件的总数量检索用户输入路径下文件夹的数量检索用户输入路径下所有结尾与输入字符匹配的文件数量。这么说可能有点儿抽象先贴一张程序运行的结果图片。 我分别使用这个小程序检索了我C盘下Autodesk文件夹内的文件总数文件夹总数和txt文件总数最后退出程序。然后我来到了Autodesk文件夹右键属性了一下证实数量确实是正确的。而至于txt的数量我在文件夹窗口搜索栏输入txt一共182个结果然而我一个一个数过了有6个是开头为txt的所以176是准确无误的。如果你想要让我们代码的功能编程包含txt这三个字符而不是以这三个字符结尾只需要在后面进行简单修改这里先不赘述。 好了闲话不多说直接贴上代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO;//需要引入 using System.Threading;//需要引入namespace FilesManager {class Program{//FilesNumber方法#regionstatic int FilesNumber(string path){int count 0;try{var files Directory.GetFiles(path);count files.Length;var directories Directory.GetDirectories(path);foreach (var direc in directories){count FilesNumber(direc);}}catch (UnauthorizedAccessException exception){Console.WriteLine(exception.Message);}return count;}#endregion//DirectoriesNumber方法#regionstatic int DirectoriesNumber(string path){int count 0;try{var directories Directory.GetDirectories(path);count directories.Length;foreach (var direc in directories){count DirectoriesNumber(direc);}}catch (UnauthorizedAccessException exception){Console.WriteLine(exception.Message);}return count;}#endregion//FindExtension方法#regionstatic int FindExtension(string path, string extension){int count 0;try{var files Directory.GetFiles(path);foreach (var file in files){if (file.ToLower().EndsWith(extension)) count;}var directories Directory.GetDirectories(path);foreach (var direc in directories){count FindExtension(direc, extension);}}catch (UnauthorizedAccessException exception){Console.WriteLine(exception.Message);}return count;}#endregion//Main方法#regionstatic void Main(string[] args){string path, extension, order;Thread.Sleep(1200);Console.WriteLine(程序开始Designed By Mr.Losers);Thread.Sleep(1200);Console.WriteLine(特别鸣谢何掌柜的);Thread.Sleep(1200);Console.WriteLine();Console.Write(计算路径下文件数量请输入0\n计算路径下文件夹子数请输入1\n);Console.Write(搜索路径下文件名匹配数量请输入2\n退出程序请输入q\n);do{order Console.ReadLine();if (order 0){Console.Write(文件管理系统已经就绪!\n请输入你要查找的路径:\n);path Console.ReadLine();Console.WriteLine(该路径下文件总数为{0}, FilesNumber(path));order Console.ReadLine();}if (order 1){Console.Write(文件管理系统已经就绪!\n请输入你要查找的路径:\n);path Console.ReadLine();Console.WriteLine(该路径下文件夹总数为{0}, DirectoriesNumber(path));order Console.ReadLine();}if (order 2){Console.Write(文件管理系统已经就绪!\n请输入你要查找的路径:\n);path Console.ReadLine();Console.WriteLine(请输入你想要匹配的文件名称);extension Console.ReadLine();Console.WriteLine(符合名称的文件总数为{0}, FindExtension(path, extension));order Console.ReadLine();}if (order q)break;else{Console.WriteLine(输入错误请重新输入);}}while (true);Console.Write(Thanks for using!);Thread.Sleep(2000);}#endregion} } 贴完代码后来简单说明一下里面包含的东西。 首先要说几个点 第一个是在代码中我使用了多次varvar是C#中很方便一种用法让编译器自动判断类型。比如这里的Directory.GetFiles(path); 返回的是一个string类型的数组是包含path路径下的每个文件的路径数组。var files Directory.GetFiles()相当于string [] files Directory.GetFiles(path) 第二个是预处理指令#region和#endregion方便管理代码收起一块区域内的代码 第三个是try catch语句在本程序中我们每一个文件搜索的方法都使用了该语句因为无论是C盘还是D盘等盘符都会有文件我们是没有访问权限的所以我们要catch UnauthorizedAccessException并且把此exception的信息打印出来这样一来我们可以知道那些文件没有被进一步访问二来程序不会因为exception而中断。 第四个是我们在开始需要引入两个命名空间因为我们用到的方法Thread.Sleep()需要引入System.Threading;用到的GetFiles()和GetDirectories()需要引入System.IO; 下面我们按照顺序来看代码先来讲FilesNumber方法三个方法都使用了递归的思想此方法需要传入一个形参path既搜索的路径。count为计数器计算文件的个数。 首先对我们传入路径path中的所有文件计数所以count files.Length然后取出path中所有的directory也就是可以继续向下探索的文件夹接下来是很重要的一步——递归对每个path中取出的directory再继续执行本方法并与当前count相加得到新的count数值层层向下直到不存在可以继续向下探索的文件夹为止。 在方法中调用自己是递归的基本思路。我们假设path下有10个文件其中有3个文件夹path1path2,path3,那实际上这段代码的执行过程是count(path) path路径下的文件数量countpath1countrypath2count(path3)然后path1,path2,path3内还有文件和文件夹于是分解仍在继续。 举一个数学例子帮助大家理解 128 64 64 64 32 32) 64 ((1616)(1616)) 64 (((88)(88))((88)(88))),虽然不完全一样 但道理是差不多的都是一个层层分解的过程。我已经用生命在解释了还是没懂得请多思考思考或者另谋高就把。。。。 解释完了FilesNumber的话DirectoriesNumnber是比FilesNumber还要简单的同样使用了递归的方法这就略过了。 FindExtension方法只是做了些许的改变首先方法传入两个参数一个路径path一个匹配的扩展名extension这里注意我使用的两个方法ToLower方法确保了大小写的匹配文件都可以找到EndsWith()是后端匹配当然我们也可以使用StartWith()和Contains()如果你搜索的文件数量很少并且我们还可以找到文件后输入它当前的路径这些就交给读者自己去修改吧其实是比较简单的我为了保证程序的简洁就没有输出路径100多条路径一下输出出来也是挺痛苦的。 接下来来到Main方法注意Java中Main方法都是小写的main而C#中需要大写。 Main方法的前半部分都是定义和输出使用方法。因为我有一点儿轻微的强迫症认为输出时加入延迟会让人感觉更加舒服并且会认真看屏幕上出现的字。所以我加入了Sleep方法我一开始设定的是Sleep2000毫秒你敢信。。。。 在输出文字后的do while循环才是程序的主体。其实完全可以改用while只是不知道为啥我写的时候用了个do while你会发现我后面while的条件是true也就是他会一直执行直到用户输入Q后break出来。。。。。 这个循环中首先会要求你输入根据前面提示用户会知道输入0、1、2、q来选择功能然后程序会根据用户输入不同的字符来执行不通的功能即调用不同的方法执行之后立刻重置以准备下一次使用。因为输入的是字符串我就没有转换为int类型然后使用switch语句。 其实现在仔细看看这个程序真的是很简单很简单很简单的最简单的递归最简单的循环所以我们不得不赞叹代码真的是很神奇的东西我到现在还记得前两天把这个小东西给不懂编程的女票何掌柜看的时候她竟然以为这个小程序很强大能卖钱也是秀逗了。 最后还是希望能够帮到大家C#真的是一门很好的语言。 另如果大家发现了一些错误或者有更好的改进还请不吝赐教请邮箱、私信或者微博联系我。 2015.4.5 1539 By Mr.Losers
http://www.ihoyoo.com/news/2144.html

相关文章:

  • 乐清住房和城乡建设部网站官网阿里云自带wordpress
  • 湖南做网站 地址磐石网络站长工具seo综合查询外部链接数量
  • 大连模板网站制作哪家专业有风格的网站
  • 选择网站模板注意事项线上app怎么做
  • 网站 建设 流行 数据库wordpress 在模板页显示文章
  • 东莞网上做公司网站文旅开发公司
  • python h5网站开发电商和网站设计哪个好
  • 新加坡网站开发公司网上制作名片
  • 石家庄建站工具土巴兔装修口碑怎样
  • 台州网站策划seo推广技术培训
  • 国内高端网站定制响应式酒店网站模板
  • 高端企业网站建设蓦然郑州网站建设html5做网站系统
  • 做网站需要懂程序吗兰州新区建设局网站地址
  • 网页制作与网站建设实验报告家庭服务网站的营销策略
  • 广州市门户网站建设品牌濮阳网站建设在哪里
  • 学网站开发哪个好吴忠网站设计公司
  • 德阳高端网站建设如何做泰国网站
  • 别人网站 自己的二级域名浙江省建设培训中心网站首页
  • 冲压加工瑞安有做网站吗做智能网站系统下载软件
  • 淘宝联盟自建网站教程阿里企业邮箱免费版怎么申请
  • 上海建设银行官网网站6企业网站优化技巧
  • 太原网站建设公司动易网站安装子目录中
  • 网站建设是设计师吗做高仿鞋子在什么网站卖好
  • 公司网站改版设计做网站的公司天津
  • 建筑设计模板郑州企业网站优化公司
  • 江门专业制作网站初步ps网页设计素材
  • 网站图片上传功能怎么做的泰安人才招聘信息网
  • 邗江区城乡建设局网站dede网站源码打包下载
  • 宁波网站建设电话咨询泰安网站开发推广
  • wps怎么做网站开福区城乡建设局网站