程序员的1111

王朝学院·作者佚名  2016-08-28
窄屏简体版  字體: 小  |  中  |  大  |  超大  

又是一年一度的双11,购物的购物,约会的约会,秀恩爱的秀恩爱,单身汪自然不属于这三者。想想,没什么好买的。约会,秀恩爱那种更没了。前几年说,希望明年光棍节前可以脱单,结果到现在还是一个人过。诶,说多了都是泪。但是,人总是要有梦想的,希望明年光棍节前可以摆脱单身的状况。

”未将对象引用设置到对象的实例“

[flash=500,400]http://s1.knowsky.com/20160211/b1czuqh10kq02.png[/flash]

这种情况,大家都遇到过,通俗一点就是”找不到对象“,程序员经常跟”对象“打交道,却总是找不到对象,只能用new一个”对象“来自嘲了。

[flash=500,400]http://s1.knowsky.com/20160211/j04nbycsj2n02.png[/flash]

像是这种情况,更是给人10000点伤害,连Excel都嘲笑你找不到对象,还能不能让人愉快的工作了。

既然这样,在这个日子,自娱自乐自嘲一番,想必是极好的,于是就有了下面这个

[flash=500,400]http://s1.knowsky.com/20160211/h55w1bpepiz03.png[/flash]

虽然不知道该叫什么,应下景的话,那暂且叫它”my1111“

如何实现的呢,原理就是往磁盘塞一定量数据。一定量数据=目前磁盘可用空间-最后剩余可用空间

代码比较简单,直接贴出来

usingSystem;usingSystem.Collections.Generic;usingSystem.IO;usingSystem.Linq;namespaceDiskFiller

{classPRogram

{staticvoidMain(string[] args)

{

ShowDrives();//显示每个盘的信息List<FillingDrive> userInputFillingDrive = CollectUserInput();//获取输入的每个盘和要设置的可用空间Console.WriteLine("填充中");

List<string> filledFilePathList = FillDataToDrive(userInputFillingDrive);//往磁盘填充数据Console.WriteLine("填充完成");

Console.WriteLine("是否删除填充的数据(输入y表示删除):");if(Console.ReadLine().ToLower() =="y")

{

DeleteUselessData(filledFilePathList);//删除填充的数据}

}///<summary>///显示每个盘的信息///</summary>publicstaticvoidShowDrives()

{

IEnumerable<DriveInfo> fixedDiskDrives =GetFixedDiskDrives();foreach(vardriveinfixedDiskDrives)

{

Console.WriteLine("盘符:"+ drive.Name +"可用空间:"+ (drive.TotalFreeSpace >>20).ToString() +"MB");

}

}///<summary>///获取输入的每个盘和要设置的可用空间///</summary>///<returns></returns>publicstaticList<FillingDrive>CollectUserInput()

{

List<FillingDrive> fillingDriveList =newList<FillingDrive>();

Console.WriteLine("输入的格式为 盘符,设置的可用空间 \n例如: c,15 表示要设置C盘,并且设置C盘的最后可用空间是15MB");while(true)

{

Console.WriteLine("请输入,输入quit结束输入:");stringinput =Console.ReadLine();if(input.ToLower() =="quit")

{

break;

}string[] inputArray = input.Split(newchar[] {','}, StringSplitOptions.RemoveEmptyEntries);

fillingDriveList.Add(newFillingDrive()//这里没判断输入的格式是否正确{

DriveName= inputArray[0],

NewFreeSpace= Convert.ToInt64(inputArray[1]) <<20}

);

}returnfillingDriveList;

}///<summary>///往磁盘填充数据///</summary>///<param name="fillingDrives"></param>///<returns></returns>publicstaticList<string> FillDataToDrive(List<FillingDrive>fillingDrives)

{

List<string> filledFilePathList =newList<string>();foreach(variteminfillingDrives)

{

DriveInfo drive=newDriveInfo(item.DriveName);stringfilledFileName = DateTime.Now.ToString("yyyyMMddHHmmssfffffff") +".my1111";//填充数据的文件stringfilledFilePath =Path.Combine(drive.RootDirectory.FullName, filledFileName);using(FileStream fs =newFileStream(filledFilePath, FileMode.OpenOrCreate))

{//减去4096是因为设置系统盘时,最后的结果总是多填充了4096字节,所以这里少填充4096字节longfillingSpace = drive.TotalFreeSpace - item.NewFreeSpace -4096;

fs.SetLength(fillingSpace);

}

filledFilePathList.Add(filledFilePath);

}returnfilledFilePathList;

}///<summary>///删除填充的数据///</summary>///<param name="filledFilePathList"></param>publicstaticvoidDeleteUselessData(List<string>filledFilePathList)

{foreach(varpathinfilledFilePathList)

{

File.Delete(path);

}

}///<summary>///获取磁盘///</summary>///<returns></returns>internalstaticIEnumerable<DriveInfo>GetFixedDiskDrives()

{

DriveInfo[] totalDrives=DriveInfo.GetDrives();

IEnumerable<DriveInfo> fixedDiskDrives = totalDrives.Where(p => p.DriveType ==DriveType.Fixed);returnfixedDiskDrives;

}publicclassFillingDrive

{///<summary>///盘符///</summary>publicstringDriveName {get;set; }///<summary>///填充到指定大小///</summary>publiclongNewFreeSpace {get;set; }

}

}

}

运行前,看下各盘的的情况,还需要给一个干净的运行环境,防止其他软件在磁盘生成数据文件,造成最后结果不准确。

[flash=500,400]http://s1.knowsky.com/20160211/p3y4obx5u0v03.png[/flash]

执行

[flash=500,400]http://s1.knowsky.com/20160211/oobxlhuvtjz03.png[/flash]

输入各盘最后可用空间,输入quit结束输入

[flash=500,400]http://s1.knowsky.com/20160211/k3ukgq4ovxc03.png[/flash]

按回车,看到“填充完成”表示已经填完了

[flash=500,400]http://s1.knowsky.com/20160211/yolsnhwjde103.png[/flash]

接下来,看下各盘的情况

[flash=500,400]http://s1.knowsky.com/20160211/zdfwibqgqc103.png[/flash]

可以看到各盘可用空间是输入的剩余可用空间大小

各盘生成了一个后缀名为“my1111”的文件,比如,这里的E盘

[flash=500,400]http://s1.knowsky.com/20160211/srpulm0jycx04.png[/flash]

看完结果后,输入”y”删除填充的文件,可以看到空间又回来了,如果输入了其它,程序会退出,填充的文件只能手动删,

删除后缀是“my1111”的文件就可以了。

[flash=500,400]http://s1.knowsky.com/20160211/btyrvjfim5v04.png[/flash]

最后,祝各位1111快乐。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航