文件及文件夾操作: C/S:WinForm可以操作客戶端文件 Client ServerB/S:Brower Server 命名空間:using system .IO; 1. File類: 創建:File.Create(路徑);創建文件,返回FileStream FileStream fs = Fi ...
文件及文件夾操作:
C/S:WinForm可以操作客戶端文件 Client Server
B/S:Brower Server
命名空間:using system .IO;
1. File類:
創建:File.Create(路徑);創建文件,返回FileStream
FileStream fs = File.Create(路徑);之後需要關閉否則打不開,fs.close();
刪除:File.Delete(路徑);無返回值
複製文件:File.Copy(源文件,目標文件);
剪切文件:File.Move(源文件路徑,目標路徑);
判斷文件是否存在:File.Exists(路徑);返回布爾型,true代表已存在
文件加密: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;
}