1. 在一個目錄下建立一個文件夾數組
if (!System.IO.Directory.Exists(path))緩存
System.IO.Directory.CreateDirectory(path);spa
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(path2, FileMode.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);