程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#文件操作

C#文件操作

編輯:關於C語言

獲取文件的版本信息:

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命名空間。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved