1. 程式人生 > >C#Winform檔案操作總結

C#Winform檔案操作總結

1.當前程式所在的資料夾 
System.IO.Directory.GetCurrentDirectory()

2.顯示指定資料夾下的檔案 
if(this.textBox1.Text.Trim()=="")
    return;
this.listBox1.Items.Clear();
string[] MyFiles=System.IO.Directory.GetFiles(this.textBox1.Text);
this.listBox1.Items.AddRange(MyFiles);

3.顯示指定資料夾下的子資料夾 
if(this.textBox1.Text.Trim()=="")
    return;
this.listBox1.Items.Clear();

4.獲取指定資料夾下的所有子資料夾 
string[] MyFolders=System.IO.Directory.GetDirectories(this.textBox1.Text);
this.listBox1.Items.AddRange(MyFolders);

5.同時顯示指定資料夾下的子資料夾和檔案 
if(this.textBox1.Text.Trim()=="")
    return;
this.listBox1.Items.Clear();

6.獲取指定資料夾下的所有檔案和子資料夾 
string[] MyFoldersFiles=System.IO.Directory.GetFileSystemEntries(this.textBox1.Text);
this.listBox1.Items.AddRange(MyFoldersFiles);

7.檔案建立時間
this.dateTimePicker1.Text=File.GetCreationTime(this.textBox1.Text).ToLongDateString();

8.最近修改時間
this.dateTimePicker2.Text=File.GetLastWriteTime(this.textBox1.Text).ToLongDateString();

9.最近訪問時間
this.dateTimePicker3.Text=File.GetLastAccessTime(this.textBox1.Text).ToLongDateString();
FileAttributes MyAttributes=File.GetAttributes(this.textBox1.Text);
string MyFileType=MyAttributes.ToString();
if(MyFileType.LastIndexOf("ReadOnly")!=-1) //是否只讀檔案
{
    this.checkBox1.Checked=true;
}
if(MyFileType.LastIndexOf("System")!=-1) //是否系統檔案
{
    this.checkBox2.Checked=true;
}
if(MyFileType.LastIndexOf("Hidden")!=-1) //是否隱藏檔案
{
    this.checkBox3.Checked=true;
}
if(MyFileType.LastIndexOf("Archive")!=-1) //是否歸檔檔案
{
    this.checkBox4.Checked=true;
}
if(MyFileType.LastIndexOf("Temporary")!=-1) //是否臨時檔案
{     this.checkBox5.Checked=true;
}

10.設定檔案屬性
if(this.textBox1.Text.Length<2)
    return;
File.SetAttributes(this.textBox1.Text, FileAttributes.Normal);
if(this.checkBox1.Checked==true)
{
    File.SetAttributes(this.textBox1.Text, FileAttributes.ReadOnly);
}
FileAttributes MyAttributes=File.GetAttributes(this.textBox1.Text);
if(this.checkBox2.Checked==true)
{
    File.SetAttributes(this.textBox1.Text,MyAttributes|FileAttributes.System);
}
MyAttributes=File.GetAttributes(this.textBox1.Text);
if(this.checkBox3.Checked==true)
{
    File.SetAttributes(this.textBox1.Text,MyAttributes|FileAttributes.Hidden);
}
MyAttributes=File.GetAttributes(this.textBox1.Text);
if(this.checkBox4.Checked==true)
{
File.SetAttributes(this.textBox1.Text,MyAttributes|FileAttributes.Archive);
}
MyAttributes=File.GetAttributes(this.textBox1.Text);
if(this.checkBox5.Checked==true)
{
    File.SetAttributes(this.textBox1.Text,MyAttributes|FileAttributes.Temporary);
}
File.SetCreationTime(this.textBox1.Text,this.dateTimePicker1.Value);
File.SetLastWriteTime(this.textBox1.Text,this.dateTimePicker2.Value);
File.SetLastAccessTime(this.textBox1.Text,this.dateTimePicker3.Value);
MessageBox.Show("設定檔案屬性操作成功!","資訊提示",*******);

11.獲取資料夾屬性
if(this.textBox1.Text.Length<2)
    return;

12.獲取資料夾建立時間
this.dateTimePicker1.Text=Directory.GetCreationTime(this.textBox1.Text).ToLongDateString();

13.獲取資料夾最近被修改時間
this.dateTimePicker2.Text=Directory.GetLastWriteTime(this.textBox1.Text).ToLongDateString();

14.獲取資料夾最近被訪問時間
this.dateTimePicker3.Text=Directory.GetLastAccessTime(this.textBox1.Text).ToLongDateString();

15.取得資料夾屬性
FileAttributes MyAttributes=File.GetAttributes(this.textBox1.Text);
string MyFileType=MyAttributes.ToString();
if(MyFileType.LastIndexOf("Hidden")!=-1)
{

16.判斷資料夾隱藏屬性
    this.checkBox3.Checked=true;
}
if(MyFileType.LastIndexOf("Archive")!=-1)
{

17.判斷資料夾歸檔屬性
    this.checkBox4.Checked=true;
}

18.設定資料夾屬性
if(this.textBox1.Text.Length<2)
    return;

19.設定資料夾屬性為正常
File.SetAttributes(this.textBox1.Text, FileAttributes.Normal);
FileAttributes MyAttributes=File.GetAttributes(this.textBox1.Text);
if(this.checkBox3.Checked==true)
{

20.設定資料夾隱藏屬性
    File.SetAttributes(this.textBox1.Text,MyAttributes|FileAttributes.Hidden);
}
MyAttributes=File.GetAttributes(this.textBox1.Text);
if(this.checkBox4.Checked==true)
{

21.設定資料夾歸檔屬性
    File.SetAttributes(this.textBox1.Text,MyAttributes|FileAttributes.Archive);

22.設定資料夾建立時間
Directory.SetCreationTime(this.textBox1.Text,this.dateTimePicker1.Value);

23.設定資料夾最近被修改時間
Directory.SetLastWriteTime(this.textBox1.Text,this.dateTimePicker2.Value);

24.設定資料夾最近被訪問時間
Directory.SetLastAccessTime(this.textBox1.Text,this.dateTimePicker3.Value);
MessageBox.Show("設定資料夾屬性操作成功!","資訊提示",*******);

25.判斷檔案是否已經存在
string MyFileName=this.textBox1.Text;
if(MyFileName.Length<1)
    return;
string ShortName=MyFileName.Substring(MyFileName.LastIndexOf("//")+1);
if(File.    Exists(MyFileName))
{
    MessageBox.Show("檔案:"+ShortName+"已經存在!","資訊提示",*****);}
else
{
    MessageBox.Show("檔案:"+ShortName+"不存在!","資訊提示",*****);
}

26.判斷資料夾是否已經存在
string MyFolderName=this.textBox2.Text;
if(MyFolderName.Length<1)
    return;
string FolderName=MyFolderName.Substring(MyFolderName.LastIndexOf("//")+1);
if(Directory.Exists(MyFolderName))
{
    MessageBox.Show("資料夾:"+FolderName+"已經存在!","資訊提示",*****);
}
else
{
    MessageBox.Show("資料夾:"+FolderName+"不存在!","資訊提示",*****);


27.刪除資料夾
if(this.textBox1.Text.Trim()=="")
    return;
DirectoryInfo MyDir=new DirectoryInfo(this.textBox1.Text);
if(MessageBox.Show("是否刪除資料夾:"+this.textBox1.Text+"及其所有內容?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question) == DialogResult.Yes)
{
    MyDir.Delete(true);
    this.textBox1.Text="";
}

28.建立多層資料夾
if(this.textBox2.Text.Trim()=="")
    return;
if(Directory.Exists(this.textBox2.Text))
{
    MessageBox.Show("該資料夾已經存在!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
    return;
}
if(MessageBox.Show("是否建立多層資料夾:"+this.textBox2.Text,"提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question)==DialogResult.Yes)
{
    Directory.CreateDirectory(this.textBox2.Text); 
    this.textBox2.Text="";
}

PS:

//C#追加檔案 StreamWriter sw = File.AppendText(Server.MapPath(".")+"\\myText.txt"); 
sw.WriteLine(
"追逐理想");
sw.WriteLine(
"kzlll");
sw.WriteLine(
".NET筆記");
sw.Flush();
sw.Close();

//C#拷貝檔案 string OrignFile,NewFile;
OrignFile
= Server.MapPath(".")+"\\myText.txt";
NewFile
= Server.MapPath(".")+"\\myTextCopy.txt";
File.Copy(OrignFile,NewFile,
true);

//C#刪除檔案 string delFile = Server.MapPath(".")+"\\myTextCopy.txt";
File.Delete(delFile);

//C#移動檔案 string OrignFile,NewFile;
OrignFile
= Server.MapPath(".")+"\\myText.txt";
NewFile
= Server.MapPath(".")+"\\myTextCopy.txt";
File.Move(OrignFile,NewFile);

//C#建立目錄
// 建立目錄c:\sixAge DirectoryInfo d=Directory.CreateDirectory("c:\\sixAge");
// d1指向c:\sixAge\sixAge1 DirectoryInfo d1=d.CreateSubdirectory("sixAge1");
// d2指向c:\sixAge\sixAge1\sixAge1_1 DirectoryInfo d2=d1.CreateSubdirectory("sixAge1_1");
// 將當前目錄設為c:\sixAge Directory.SetCurrentDirectory("c:\\sixAge");
// 建立目錄c:\sixAge\sixAge2 Directory.CreateDirectory("sixAge2");
// 建立目錄c:\sixAge\sixAge2\sixAge2_1 Directory.CreateDirectory("sixAge2\\sixAge2_1");

//遞迴刪除資料夾及檔案 <%@ Page Language=C#%><%@ Import namespace="System.IO"%><Script runat=server>publicvoid DeleteFolder(string dir)
{
if (Directory.Exists(dir)) //如果存在這個資料夾刪除之 {
foreach(string d in Directory.GetFileSystemEntries(dir))
{
if(File.Exists(d))
File.Delete(d);
//直接刪除其中的檔案 else
DeleteFolder(d);
//遞迴刪除子資料夾 }
Directory.Delete(dir);
//刪除已空資料夾 Response.Write(dir+" 資料夾刪除成功");
}
else
Response.Write(dir
+" 該資料夾不存在"); //如果資料夾不存在則提示 }

protectedvoid Page_Load (Object sender ,EventArgs e)
{
string Dir="D:\\gbook\\11";
DeleteFolder(Dir);
//呼叫函式刪除資料夾 }