C#對Windows文件/文件夾/目錄的一些操做總結

1.   在一個目錄下建立一個文件夾數組

if (!System.IO.Directory.Exists(path))緩存

System.IO.Directory.CreateDirectory(path);spa

 

String path=@」C:/新文件夾的名字指針

 

2.   時間的字符串表示法   20080616091219ci

System.DateTime.Now.ToString("yyyyMMdd"), System.DateTime.Now.ToString("HHmmss")字符串

DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")get

 

3.   獲取系統的特殊文件的路徑string

String path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)it

//有下劃線的爲Environment.SpecialFolder的枚舉,還有不少io

 

4.   拷貝一個文件到另外一個目錄下

System.IO.File.Copy(要拷貝的文件目錄,目的目錄);

注意:兩個目錄都要是具體的文件名,不能是文件夾。

 

5.   取當前程序集。EXE文件所在的絕對路徑

String locationPath =

System.Reflection.Assembly.GetExecutingAssembly().Location

 

6.   取得運行中的程序名字和路徑(和上面的結果同樣)

System.Reflection.Assembly.GetExecutingAssembly().CodeBase.Substring(8);

System.Reflection.Assembly.GetExecutingAssembly().CodeBase; 
的意思就是取得運行中的程序名字和路徑
 
但前面有file:///重要的格式
 
file:///D:/Project/bin/Debug/WindowsApplication.EXE


System.Reflection.Assembly.GetExecutingAssembly().CodeBase.Substring(8); 
的意思就是從第8位開始取得字符串 
D:/Project/bin/Debug/WindowsApplication.EXE

 

7.   將文件目錄按/號分割開(如上例中的目錄)

string[] strLoc;

strLoc = locationPath.Split('//');

想取到哪一級目錄就取到哪一級目錄

String  strParticalPath;

for (int j = 0; j < strLoc.Length - 1; j++)

  {

      strParticalPath += strLoc[j] + "//";

  }

 

8.   打開某個文件夾/文件

System.Diagnostics.Process.Start(path);

path爲文件夾目錄

System.IO.File.Open(path2FileMode.Open);

String path2=@」C:/新文件夾的名字/文件的名字

 

9.   取得目錄(m_path)下全部文件的文件名

//返回的是m_path目錄裏每個.txt文件的完整的路徑

//其中m_path爲目錄的完整路徑

string[] fileName = System.IO.Directory.GetFiles(m_path,"*.txt");

//取得第一個.txt文件的路徑

m_allFilePath = fileName[0];

//若是目錄下還有子目錄就用下面這個

string[] fileNames =System.IO.Directory.GetFiles(m_path,"*",SearchOption.AllDirectories);

 

10.             獲取一個文件夾中全部文件的大小

long fileSize = 0;

string sOutDir = @"D:/data/CD01";

DirectoryInfo dirInfo = new DirectoryInfo(sOutDir);

foreach (FileInfo fileInfo in dirInfo.GetFiles())

{

     fileSize += fileInfo.Length;

}

 

11.            DirectoryInfo.GetFiles();DirectoryInfo.GetDirectories();DirectoryInfo.GetFileSystemInfos()比較

DirectoryInfo dir = new DirectoryInfo(path);// path爲文件夾路徑

FileInfo[] a = dir.GetFiles();//獲取路徑下文件的名字

DirectoryInfo[] b = dir.GetDirectories();//獲取路徑下文件夾的名字

FileSystemInfo[] c = dir.GetFileSystemInfos();//獲取路徑下文件和文件夾的名字

 

12.             一個文件夾(包括子文件夾)中全部文件的個數

        public static int GetFileCount(string path)

        {

            System.IO.DirectoryInfo dir = new DirectoryInfo(path);

            int count = dir.GetFiles().Length;

            foreach (DirectoryInfo d in dir.GetDirectories())

            {

                count += GetFileCount(d.FullName);

            }

            return count;

        }

 

13.             一個文件夾(包括子文件夾)中全部文件的大小

public static long FolderSize(string path)

{

   long Fsize = 0;

   try

   {

      FileInfo[] files = (new DirectoryInfo(path)).GetFiles();

 

      foreach (FileInfo file in files)

      {

         Fsize += file.Length;

      }

 

   DirectoryInfo[] folders = (new DirectoryInfo(path)).GetDirectories();

 

      foreach (DirectoryInfo folder in folders)

      {

         Fsize += FolderSize(folder.FullName);

      }

    }

    catch (Exception ex)

    {

       return Fsize;

    }

    return Fsize;

 }

 

14.             文件讀寫操做

Static void Main(string[] args)

{

    const string filePath = @」」;

    FileStream fs = null;

    try

    {

        Console.WriteLine(「開始往文件中寫內容」);

 

fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);

 

byte[] bytes = Encoding.Default.GetBytes(「這是一個字符串,將插入到文本文件中」);

 

//向流中寫入指定的字節數組

fs.Write(bytes, 0, bytes.Length);

 

//將緩存區的內容存儲到媒體並清除緩存區。

fs.Flush();

 

//將流指針移到開頭

fs.Seek(0, SeekOrigin.Begin);

 

byte[] bytes2 = new byte[bytes.Length];

 

fs.Read(bytes2, 0, bytes.Length);

 

string str = Encoding.Default.GetString(bytes2);

 

Console.WriteLine(「從文件中讀出的字符串爲」 + Environment.NewLine+str);

}

catch(IOException ex)

{

    Console.WriteLine(「發生的文件處理的錯誤!」 + ex.Message);

}

finally

{

    Console.WriteLine(「不管是否發生異常,都會執行finally到這裏」);

    if(fs != null)

    {

        fs.Close();

}

Console.ReadLine();

}

}

 

15.             生成一個.txt文件,並往裏寫一串字符串。

fileName = @"C:/a.txt";

 

FileStream mystream = new FileStream(fileName, FileMode.OpenOrCreate);

StreamWriter Mywriter = new StreamWriter(mystream, Encoding.Default);

 

string text = "";

 

Mywriter.Write(text);

Mywriter.Close();

mystream.Close();

 

16.             刪去某個文件

// m_allFilePath爲文件的完整路徑,包括後綴

System.IO.File.Delete(m_allFilePath);

 

 
0
相關文章
相關標籤/搜索