您的位置:首页 > 其它

28先判断是否存在,再创建文件夹或文件,递归计算文件夹大小

2014-04-08 15:18 525 查看
本篇主要涉及:
1、先判断文件夹是否存在,再决定是否创建文件夹
2、先判断文件是否存在,再决定是否创建文件
3、创建文件之前计算文件夹总大小,如果大小超过规定,放弃创建文件

 

  先判断文件夹是否存在,再决定是否创建文件夹

如果文件夹不存在,就创建新文件夹。
如果文件夹已存在,提示已经存在。

using System.IO;


[code] 


namespace ConsoleApplication26


{


class Program


{


//文件存放的根文件夹


const string main_Dir = @"F:/Test";


 


static void Main(string[] args)


{


CreateNamedDir("User01");


Console.ReadKey();


}


 


//根据文件夹全路径创建文件夹


private static void CreateDir(string subdir)


{


string path = main_Dir + "/" + subdir;


if (Directory.Exists(path))


{


Console.WriteLine("此文件夹已经存在,无需创建!");


}


else


{


Directory.CreateDirectory(path);


Console.WriteLine(path+ "创建成功!");


}


}


 


//根据文件夹名称创建文件夹


private  static void CreateNamedDir(string name)


{


if (name.Length != 0)


{


CreateDir(name);


}


else


{


Console.WriteLine("必须规定创建文件夹的名称");


}


}


}


}


 

[/code]

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

结果:

如果文件夹不存在,多了一个新的文件夹:





 

如果文件夹已存在,提示已经存在:





 

  先判断文件是否存在,再决定是否创建文件

如果文件不存在,创建文件并在文件中写入一行内容。

如果文件存在,在当前文件中追加一行内容。

using System.IO;


[code] 


namespace ConsoleApplication2


{


class Program


{


static void Main(string[] args)


{


string path = @"F:\Test\second.txt";


if (!File.Exists(path))


{


//File.Create(path);


TextWriter tw = new StreamWriter(path);


tw.WriteLine("创建完文件加的第一行~~");


tw.Close();


}


else


{


TextWriter tw = new StreamWriter(path,true);


tw.WriteLine("已经存在文件,再加一行吧~~");


tw.Close();


}


}


}


}


 

[/code]

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

结果:

如果文件不存在,创建文件并在文件中写入一行内容:





如果文件存在,在当前文件中追加一行内容:





 

注意:

File.Create(path)返回FileStream类型

TextWriter tw = new StreamWriter(path)返回TextWriter类型

2行语句不能同时存在,否则报错"正由另一进程使用,因此该进程无法访问此文件"。

 

  创建文件之前计算文件夹总大小,如果大小超过规定,放弃创建文件

using System;


[code]using System.IO;


 


namespace ConsoleApplication3


{


class Program


{


static void Main(string[] args)


{


string path = @"F:\Test\third.txt";


 


//计算指定文件夹的大小


long size = GetDirectoryLength(@"F:\Test");


if (!File.Exists(path))


{


if (size <= 500)


{


    TextWriter tw = new StreamWriter(path);


    tw.WriteLine("创建完文件加的第一行~~");


    tw.Close();


}


    else


{


Console.WriteLine("无法创建,已经超过限定大小了~~");


}




}


else


{


TextWriter tw = new StreamWriter(path, true);


tw.WriteLine("已经存在文件,再加一行吧~~");


tw.Close();


}




//Console.WriteLine(size.ToString());


Console.ReadKey();


}


 


//递归计算文件夹大小


static long GetDirectoryLength(string path)


{


if (!Directory.Exists(path))


{


return 0;


}


 


long size = 0;


 


//遍历指定路径下的所有文件


DirectoryInfo di = new DirectoryInfo(path);


foreach (FileInfo fi in di.GetFiles())


{


size += fi.Length;


}


 


//遍历指定路径下的所有文件夹


DirectoryInfo[] dis = di.GetDirectories();


if (dis.Length > 0)


{


for (int i = 0; i < dis.Length; i++)


{


    size += GetDirectoryLength(dis[i].FullName);


}


}


 


return size;


}


}


}


 

[/code]

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

结果:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: