C#文件操作

来源:互联网 发布:淘宝百度推广 编辑:程序博客网 时间:2024/05/20 02:51

获取文件的版本信息:

FileVersionInfo myFileVersionInfo1 = FileVersionInfo.GetVersionInfo("D://TEST.DLL");
textBox1.Text="版本号: " + myFileVersionInfo1.FileVersion; 


更改文件属性,删除只读文件:

下例欲将E:/test.txt文件拷贝至D:/tmp/test.txt,但D:/tmp/test.txt已经存在。

//File.Copy(sourceFile,destinationFile,true); 用来拷贝文件
//当destinationFile已经存在时,无法将文件file1拷贝到目标文件,
//因此先删除destination文件,File.Delete()方法不能删除只读文件,
//因此,如果文件属性为只读(Attributes属性中会包含有"ReadOnly"),
//先把文件属性重置为Normal,然后再删除:
string file1="E://test.txt";
string destinationFile="d://tmp//test.txt";
if(File.Exists(destinationFile))
{
 FileInfo fi=new FileInfo(destinationFile);
 if(fi.Attributes.ToString().IndexOf("ReadOnly")!=-1)
  fi.Attributes=FileAttributes.Normal;
  File.Delete(destinationFile);
}
File.Copy(file1,destinationFile,true);

  判断文件是否存在:File.Exists(string filePath)

  判断目录是否存在:Directory.Exists("D://LastestVersion")

  按行读取文件:

int fileCount=0;
// Open the file just specified such that no one else can use it.
StreamReader sr = new StreamReader(textBox1.Text.Trim());
while(sr.Peek() > -1)//StreamReader.Peek()返回下一个可用字符,但不使用它
{
 listBox1.Items.Add(sr.ReadLine());
 fileCount++;
}
sr.Close();

  按行写入文件:

StreamWriter sw = new StreamWriter("D://result.txt");
for(int i=0;i<10;i++)
{
 sw.WriteLine("这是第"+i.ToString()+"行数据");
}

方法二:

 

private const int FO_DELETE = 0x3;
private const ushort FOF_NOCONFIRMATION = 0x10;
private const ushort FOF_ALLOWUNDO = 0x40;

[DllImport("shell32.dll", SetLastError=true, CharSet=CharSet.Unicode)]
private static extern int SHFileOperation([In,Out] _SHFILEOPSTRUCT str);

[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
public class _SHFILEOPSTRUCT
{
public IntPtr hwnd;
public UInt32 wFunc;
public string pFrom;
public string pTo;
public UInt16 fFlags;
public Int32 fAnyOperationsAborted;
public IntPtr hNameMappings;
public string lpszProgressTitle;
}

public static int Delete(string path)
{
_SHFILEOPSTRUCT pm = new _SHFILEOPSTRUCT();
pm.wFunc = FO_DELETE;
pm.pFrom = path + '/0';
pm.pTo = null;
pm.fFlags = FOF_ALLOWUNDO ¦ FOF_NOCONFIRMATION;
return SHFileOperation(pm);
}
调用:Class1.Delete("C://temp.txt");

注:返回值为0表示调用成功,非0表示调用失败。
需要引用System.Runtime.InteropServices命名空间。

 

 

 

 

#追加文件
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");

递归删除文件夹及文件

 

 

当前程序所在的文件夹
System.IO.Directory.GetCurrentDirectory()


显示指定文件夹下的文件
if(this.textBox1.Text.Trim()=="")
    return;
this.listBox1.Items.Clear();
string[] MyFiles=System.IO.Directory.GetFiles(this.textBox1.Text);
this.listBox1.Items.AddRange(MyFiles);


显示指定文件夹下的子文件夹
if(this.textBox1.Text.Trim()=="")
    return;
this.listBox1.Items.Clear();


获取指定文件夹下的所有子文件夹
string[] MyFolders=System.IO.Directory.GetDirectories(this.textBox1.Text);
this.listBox1.Items.AddRange(MyFolders);


同时显示指定文件夹下的子文件夹和文件
if(this.textBox1.Text.Trim()=="")
    return;
this.listBox1.Items.Clear();


获取指定文件夹下的所有文件和子文件夹
string[] MyFoldersFiles=System.IO.Directory.GetFileSystemEntries(this.textBox1.Text);
this.listBox1.Items.AddRange(MyFoldersFiles);


文件创建时间
this.dateTimePicker1.Text=File.GetCreationTime(this.textBox1.Text).ToLongDateString();


最近修改时间
this.dateTimePicker2.Text=File.GetLastWriteTime(this.textBox1.Text).ToLongDateString();


最近访问时间
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;
}


设置文件属性
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("设置文件属性操作成功!","信息提示",*******);


获取文件夹属性
if(this.textBox1.Text.Length<2)
    return;


获取文件夹创建时间
this.dateTimePicker1.Text=Directory.GetCreationTime(this.textBox1.Text).ToLongDateString();


获取文件夹最近被修改时间
this.dateTimePicker2.Text=Directory.GetLastWriteTime(this.textBox1.Text).ToLongDateString();


获取文件夹最近被访问时间
this.dateTimePicker3.Text=Directory.GetLastAccessTime(this.textBox1.Text).ToLongDateString();


取得文件夹属性
FileAttributes MyAttributes=File.GetAttributes(this.textBox1.Text);
string MyFileType=MyAttributes.ToString();
if(MyFileType.LastIndexOf("Hidden")!=-1)
{


判断文件夹隐藏属性
    this.checkBox3.Checked=true;
}
if(MyFileType.LastIndexOf("Archive")!=-1)
{


判断文件夹归档属性
    this.checkBox4.Checked=true;
}


设置文件夹属性
if(this.textBox1.Text.Length<2)
    return;


设置文件夹属性为正常
File.SetAttributes(this.textBox1.Text, FileAttributes.Normal);
FileAttributes 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);


设置文件夹创建时间
Directory.SetCreationTime(this.textBox1.Text,this.dateTimePicker1.Value);


设置文件夹最近被修改时间
Directory.SetLastWriteTime(this.textBox1.Text,this.dateTimePicker2.Value);


设置文件夹最近被访问时间
Directory.SetLastAccessTime(this.textBox1.Text,this.dateTimePicker3.Value);
MessageBox.Show("设置文件夹属性操作成功!","信息提示",*******);


判断文件是否已经存在
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+"不存在!","信息提示",*****);
}


判断文件夹是否已经存在
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+"不存在!","信息提示",*****);
}


删除文件夹
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="";
}


创建多层文件夹
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="";
}

原创粉丝点击