文件及文件夾操做- File類、Directory 類、FileInfo 類、DirectoryInfo 類

文件及文件夾操做:數組

C/S:WinForm能夠操做客戶端文件 Client Server
B/S:Brower Server加密

命名空間:using system .IO;orm

1. File類:對象

建立:File.Create(路徑);建立文件,返回FileStreamget

FileStream fs = File.Create(路徑);以後須要關閉不然打不開,fs.close();string

刪除:File.Delete(路徑);無返回值it

複製文件:File.Copy(源文件,目標文件);io

剪切文件:File.Move(源文件路徑,目標路徑);ast

判斷文件是否存在:File.Exists(路徑);返回布爾型,true表明已存在foreach

文件加密:File.Encrypt();File.Decrypt();解密

File.GetCreationTime(路徑);獲取建立時間,返回DateTime類型 SetCreationTime(路徑,DateTime類型);修改建立時間

File.GetLastAccessTime(路徑);最後訪問時間,返回DateTime類型 SetLastAccessTime(路徑,DateTime類型);修改訪問時間

File.GetLastWriteTime(路徑);最後修改時間,返回DateTime類型 SetLastWriteTime(路徑,DateTime類型);修改修改時間


2. Directory 類,目錄(文件夾)

Directory .CreateDirectory(路徑);建立目錄

Directory .Delete(路徑);刪除目錄

Directory .Exists(路徑);目錄是否存在

三個時間的get和set

Directory .GetDirectories(路徑); 獲取子目錄,返回string數組

Directory .GetFiles(路徑); 獲取子文件!名!,返回string數組,string[] s = Directory .GetFiles(路徑);

Directory .GetDirectoryRoot(路徑); 獲取根目錄

Directory .GetParent(路徑); 獲取上一級目錄

------------------------------------------------------------------------------------------------------

FileInfo 類

是實例方法,須要造對象new出來才能用,上面的都是File的靜態方法

建立文件:FileInfo f = new FileInfo(路徑); FileStream s = f.Create(); s.Close();

刪除文件:FileInfo f = new FileInfo(路徑); f.Delete();

複製文件:FileInfo f = new FileInfo(路徑); f.CopyTo(目標路徑,是否覆蓋(true是覆蓋));

移動文件:FileInfo f = new FileInfo(路徑); f.MoveTo(目標路徑);

文件是否存在:FileInfo f = new FileInfo(路徑); bool b = f.Exists;布爾型,是個屬性

獲取文件名:FileInfo f = new FileInfo(路徑);string s = f.FullName;屬性,帶路徑的文件名

得到建立時間:DateTime d = f.CreationTime,三個時間都同樣,都是屬性

設置建立時間:f.CreationTime = DateTime.Now.AddDays(100); 三個都同樣

獲取文件大小:f.Length


DirectoryInfo 類

建立目錄:DirectoryInfo d = new DirectoryInfo(路徑); d.Create();

刪除目錄:d.Delete();

移動目錄:d.MoveTo(目標路徑);

目錄是否存在:bool b = d.Exists;

得到目錄全名:d.FullName;

得到子文件!對象信息!: FileInfo[] f = d.GetFiles(); 返回的是文件對象數組,內容更詳細,d.GetFiles("*.exe")只獲取exe的文件

得到子目錄:DirectoryInfo[] dr = d.GetDirectories();

實例展現:讀取目錄大小

private long size = 0;
private long DirSize(string path)
{
DirectoryInfo d = new DirectoryInfo(path);
FileInfo[] f = d.GetFiles();
foreach (FileInfo wj in f)
{
size += wj.Length;
}

DirectoryInfo[] dr = d.GetDirectories();
if (dr.Count() > 0)
{
foreach (DirectoryInfo wjj in dr)
{
DirSize(wjj.FullName);
}
}

return size;
}

讀取目錄下面文件夾數量:

private int dcount = 0;
private int DirCount(string path)
{
DirectoryInfo d = new DirectoryInfo(path);

DirectoryInfo[] dr = d.GetDirectories();

if (dr.Count() > 0)
{
foreach (DirectoryInfo wjj in dr)
{
DirCount(wjj.FullName);
}
}

dcount += dr.Count();

return dcount;
}

讀取全部文件數量:

private int count=0;
private int FileCount(string path)
{
DirectoryInfo d = new DirectoryInfo(path);
FileInfo[] f = d.GetFiles();

DirectoryInfo[] dr = d.GetDirectories();
if (dr.Count() > 0)
{
foreach (DirectoryInfo wjj in dr)
{
FileCount(wjj.FullName);
}
}

count += f.Count();

return count;
}

利用遍歷集合查詢文件夾下全部文件數量,文件夾數量:

private int fcount = 0;
private int FileCount(string path)
{
//造文件夾信息對象
DirectoryInfo dwjj = new DirectoryInfo(path);

//取當前文件夾下文件數量
fcount += dwjj.GetFiles().Length;

//取當前目錄下全部文件夾
foreach (DirectoryInfo d in dwjj.GetDirectories())
{
FileCount(d.FullName);
}

return fcount;

}

private int dcount = 0;
private int DirCount(string path)
{
//造一個文件夾信息對象
DirectoryInfo d = new DirectoryInfo(path);

//取該目錄下全部文件夾
DirectoryInfo[] df = d.GetDirectories();

//累加文件夾數量
dcount += df.Length;

//遍歷全部文件夾
foreach (DirectoryInfo w in df)
{
DirCount(w.FullName);
}

return dcount; }

相關文章
相關標籤/搜索