版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第C#文件非占用讀取與幫助類FileHelper非占用方式:
FileStreamfs=newFileStream(fileName,FileMode.Open,FileAccess.Read,FileShare.ReadWrite|FileShare.Delete);
StreamReadersr=newStreamReader(fs,System.Text.Encoding.Default);
//按行讀取
stringstrLine=sr.ReadLine();
//關(guān)閉讀寫流和文件流
sr.Close();
fs.Close();
占用方式:
FileStreamfs=newFileStream(fileName,System.IO.FileMode.Open,System.IO.FileAccess.Read);
StreamReadersr=newStreamReader(fs,System.Text.Encoding.Default);
StreamReadersr=newStreamReader(fs,System.Text.Encoding.Default);
//按行讀取
stringstrLine=sr.ReadLine();
//關(guān)閉讀寫流和文件流
sr.Close();
fs.Close();
文件以及文件夾幫助類(FileHelper)
代碼:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.IO;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
namespaceFileHelperDemo
///summary
///文件操作幫助類
////summary
publicclassFileUtilHelper
#region檢測指定目錄是否存在
///summary
///檢測指定目錄是否存在,如果存在則返回true。
////summary
///paramname="directoryPath"目錄的絕對路徑/param
publicstaticboolIsExistDirectory(stringdirectoryPath)
returnDirectory.Exists(directoryPath);
#endregion
#region檢測指定文件是否存在
///summary
///檢測指定文件是否存在,如果存在則返回true。
////summary
///paramname="filePath"文件的絕對路徑/param
publicstaticboolIsExistFile(stringfilePath)
returnFile.Exists(filePath);
#endregion
#region檢測指定目錄是否為空
///summary
///檢測指定目錄是否為空
////summary
///paramname="directoryPath"指定目錄的絕對路徑/param
publicstaticboolIsEmptyDirectory(stringdirectoryPath)
//判斷是否存在文件
string[]fileNames=GetFileNames(directoryPath);
if(fileNames.Length0)
returnfalse;
//判斷是否存在文件夾
string[]directoryNames=GetDirectories(directoryPath);
if(directoryNames.Length0)
returnfalse;
returntrue;
catch(Exceptionex)
throwex;
#endregion
#region檢測指定目錄中是否存在指定的文件
///summary
///檢測指定目錄中是否存在指定的文件,若要搜索子目錄請使用重載方法.
////summary
///paramname="directoryPath"指定目錄的絕對路徑/param
///paramname="searchPattern"模式字符串,"*"代表0或N個字符,""代表1個字符。
///范例:"Log*.xml"表示搜索所有以Log開頭的Xml文件。/param
publicstaticboolIsContainsFile(stringdirectoryPath,stringsearchPattern)
//獲取指定的文件列表
string[]fileNames=GetFileNames1(directoryPath,searchPattern,false);
//判斷指定文件是否存在
if(fileNames.Length==0)
returnfalse;
else
returntrue;
catch(Exceptionex)
throwex;
publicstaticstring[]GetFileNames1(stringdirectoryPath,stringsearchPattern,boolisSearchChild)
//如果目錄不存在,則拋出異常
if(!IsExistDirectory(directoryPath))
thrownewFileNotFoundException();
if(isSearchChild)
returnDirectory.GetFiles(directoryPath,searchPattern,SearchOption.AllDirectories);
else
returnDirectory.GetFiles(directoryPath,searchPattern,SearchOption.TopDirectoryOnly);
catch(IOExceptionex)
throwex;
///summary
///檢測指定目錄中是否存在指定的文件
////summary
///paramname="directoryPath"指定目錄的絕對路徑/param
///paramname="searchPattern"模式字符串,"*"代表0或N個字符,""代表1個字符。
///范例:"Log*.xml"表示搜索所有以Log開頭的Xml文件。/param
///paramname="isSearchChild"是否搜索子目錄/param
publicstaticboolIsContainsFile(stringdirectoryPath,stringsearchPattern,boolisSearchChild)
//獲取指定的文件列表
string[]fileNames=GetFileNames2(directoryPath,searchPattern,true);
//判斷指定文件是否存在
if(fileNames.Length==0)
returnfalse;
else
returntrue;
catch(Exceptionex)
throwex;
publicstaticstring[]GetFileNames2(stringdirectoryPath,stringsearchPattern,boolisSearchChild)
//如果目錄不存在,則拋出異常
if(!IsExistDirectory(directoryPath))
thrownewFileNotFoundException();
if(isSearchChild)
returnDirectory.GetFiles(directoryPath,searchPattern,SearchOption.AllDirectories);
else
returnDirectory.GetFiles(directoryPath,searchPattern,SearchOption.TopDirectoryOnly);
catch(IOExceptionex)
throwex;
#endregion
#region創(chuàng)建一個目錄
///summary
///創(chuàng)建一個目錄
////summary
///paramname="directoryPath"目錄的絕對路徑/param
publicstaticvoidCreateDirectory(stringdirectoryPath)
//如果目錄不存在則創(chuàng)建該目錄
if(!IsExistDirectory(directoryPath))
Directory.CreateDirectory(directoryPath);
#endregion
#region創(chuàng)建一個文件
///summary
///創(chuàng)建一個文件
////summary
///paramname="filePath"文件的絕對路徑/param
publicstaticvoidCreateFile(stringfilePath)
//如果文件不存在則創(chuàng)建該文件
if(!IsExistFile(filePath))
//創(chuàng)建一個FileInfo對象
FileInfofile=newFileInfo(filePath);
//創(chuàng)建文件
FileStreamfs=file.Create();
//關(guān)閉文件流
fs.Close();
catch(Exceptionex)
throwex;
///summary
///創(chuàng)建一個文件,并將字節(jié)流寫入文件。
////summary
///paramname="filePath"文件的絕對路徑/param
///paramname="buffer"二進制流數(shù)據(jù)/param
publicstaticvoidCreateFile(stringfilePath,byte[]buffer)
//如果文件不存在則創(chuàng)建該文件
if(!IsExistFile(filePath))
//創(chuàng)建一個FileInfo對象
FileInfofile=newFileInfo(filePath);
//創(chuàng)建文件
FileStreamfs=file.Create();
//寫入二進制流
fs.Write(buffer,0,buffer.Length);
//關(guān)閉文件流
fs.Close();
catch(Exceptionex)
throwex;
#endregion
#region獲取文本文件的行數(shù)
///summary
///獲取文本文件的行數(shù)
////summary
///paramname="filePath"文件的絕對路徑/param
publicstaticintGetLineCount(stringfilePath)
//將文本文件的各行讀到一個字符串?dāng)?shù)組中
string[]rows=File.ReadAllLines(filePath);
//返回行數(shù)
returnrows.Length;
#endregion
#region獲取一個文件的長度
///summary
///獲取一個文件的長度,單位為Byte
////summary
///paramname="filePath"文件的絕對路徑/param
publicstaticintGetFileSize(stringfilePath)
//創(chuàng)建一個文件對象
FileInfofi=newFileInfo(filePath);
//獲取文件的大小
return(int)fi.Length;
#endregion
#region獲取指定目錄中的文件列表
///summary
///獲取指定目錄中所有文件列表
////summary
///paramname="directoryPath"指定目錄的絕對路徑/param
publicstaticstring[]GetFileNames(stringdirectoryPath)
//如果目錄不存在,則拋出異常
if(!IsExistDirectory(directoryPath))
thrownewFileNotFoundException();
//獲取文件列表
returnDirectory.GetFiles(directoryPath);
///summary
///獲取指定目錄及子目錄中所有文件列表
////summary
///paramname="directoryPath"指定目錄的絕對路徑/param
///paramname="searchPattern"模式字符串,"*"代表0或N個字符,""代表1個字符。
///范例:"Log*.xml"表示搜索所有以Log開頭的Xml文件。/param
///paramname="isSearchChild"是否搜索子目錄/param
publicstaticstring[]GetFileNames(stringdirectoryPath,stringsearchPattern,boolisSearchChild)
//如果目錄不存在,則拋出異常
if(!IsExistDirectory(directoryPath))
thrownewFileNotFoundException();
if(isSearchChild)
returnDirectory.GetFiles(directoryPath,searchPattern,SearchOption.AllDirectories);
else
returnDirectory.GetFiles(directoryPath,searchPattern,SearchOption.TopDirectoryOnly);
catch(IOExceptionex)
throwex;
#endregion
#region獲取指定目錄中的子目錄列表
///summary
///獲取指定目錄中所有子目錄列表,若要搜索嵌套的子目錄列表,請使用重載方法.
////summary
///paramname="directoryPath"指定目錄的絕對路徑/param
publicstaticstring[]GetDirectories(stringdirectoryPath)
returnDirectory.GetDirectories(directoryPath);
catch(IOExceptionex)
throwex;
///summary
///獲取指定目錄及子目錄中所有子目錄列表
////summary
///paramname="directoryPath"指定目錄的絕對路徑/param
///paramname="searchPattern"模式字符串,"*"代表0或N個字符,""代表1個字符。
///范例:"Log*.xml"表示搜索所有以Log開頭的Xml文件。/param
///paramname="isSearchChild"是否搜索子目錄/param
publicstaticstring[]GetDirectories(stringdirectoryPath,stringsearchPattern,boolisSearchChild)
if(isSearchChild)
returnDirectory.GetDirectories(directoryPath,searchPattern,SearchOption.AllDirectories);
else
returnDirectory.GetDirectories(directoryPath,searchPattern,SearchOption.TopDirectoryOnly);
catch(IOExceptionex)
throwex;
#endregion
#region向文本文件寫入內(nèi)容
///summary
///向文本文件中寫入內(nèi)容
////summary
///paramname="filePath"文件的絕對路徑/param
///paramname="content"寫入的內(nèi)容/param
publicstaticvoidWriteText(stringfilePath,stringcontent)
//向文件寫入內(nèi)容
File.WriteAllText(filePath,content);
#endregion
#region向文本文件的尾部追加內(nèi)容
///summary
///向文本文件的尾部追加內(nèi)容
////summary
///paramname="filePath"文件的絕對路徑/param
///paramname="content"寫入的內(nèi)容/param
publicstaticvoidAppendText(stringfilePath,stringcontent)
File.AppendAllText(filePath,content);
#endregion
#region將現(xiàn)有文件的內(nèi)容復(fù)制到新文件中
///summary
///將源文件的內(nèi)容復(fù)制到目標(biāo)文件中
////summary
///paramname="sourceFilePath"源文件的絕對路徑/param
///paramname="destFilePath"目標(biāo)文件的絕對路徑/param
publicstaticvoidCopy(stringsourceFilePath,stringdestFilePath)
File.Copy(sourceFilePath,destFilePath,true);
#endregion
#region將文件移動到指定目錄
///summary
///將文件移動到指定目錄
////summary
///paramname="sourceFilePath"需要移動的源文件的絕對路徑/param
///paramname="descDirectoryPath"移動到的目錄的絕對路徑/param
publicstaticvoidMove(stringsourceFilePath,stringdescDirectoryPath)
//獲取源文件的名稱
stringsourceFileName=GetFileName(sourceFilePath);
if(IsExistDirectory(descDirectoryPath))
//如果目標(biāo)中存在同名文件,則刪除
if(IsExistFile(descDirectoryPath+"\\"+sourceFileName))
DeleteFile(descDirectoryPath+"\\"+sourceFileName);
//將文件移動到指定目錄
File.Move(sourceFilePath,descDirectoryPath+"\\"+sourceFileName);
#endregion
#region從文件的絕對路徑中獲取文件名(包含擴展名)
///summary
///從文件的絕對路徑中獲取文件名(包含擴展名)
////summary
///paramname="filePath"文件的絕對路徑/param
publicstaticstringGetFileName(stringfilePath)
//獲取文件的名稱
FileInfofi=newFileInfo(filePath);
returnfi.Name;
#endregion
#region從文件的絕對路徑中獲取文件名(不包含擴展名)
///summary
///從文件的絕對路徑中獲取文件名(不包含擴展名)
////summary
///paramname="filePath"文件的絕對路徑/param
publicstaticstringGetFileNameNoExtension(stringfilePath)
//獲取文件的名稱
FileInfofi=newFileInfo(filePath);
returnfi.Name.Split('.')[0];
#endregion
#region從文件的絕對路徑中獲取擴展名
///summary
///從文件的絕對路徑中獲取擴展名
////summary
///paramname="filePath"文件的絕對路徑/param
publicstaticstringGetExtension(stringfilePath)
//獲取文件的名稱
FileInfofi=newFileInfo(filePath);
returnfi.Extension;
#endregion
#region將文件讀取到緩沖區(qū)中
///summary
///將文件讀取到緩沖區(qū)中
////summary
///paramname="filePath"文件的絕對路徑/param
publicstaticbyte[]FileToBytes(stringfilePath)
//獲取文件的大小
intfileSize=GetFileSize(filePath);
//創(chuàng)建一個臨時緩沖區(qū)
byte[]buffer=newbyte[fileSize];
//創(chuàng)建一個文件流
FileInfofi=newFileInfo(filePath);
FileStreamfs=fi.Open(FileMode.Open);
//將文件流讀入緩沖區(qū)
fs.Read(buffer,0,fileSize);
returnbuffer;
catch(IOExceptionex)
throwex;
finally
//關(guān)閉文件流
fs.Close();
#endregion
#region將文件讀取到字符串中
///summary
///將文件讀取到字符串中
////summary
///paramname="filePath"文件的絕對路徑/param
///paramname="encoding"字符編碼/param
publicstaticstringFileToString(stringfilePath,Encodingencoding)
//創(chuàng)建流讀取器
StreamReaderreader=newStreamReader(filePath,encoding);
//讀取流
returnreader.ReadToEnd();
catch(Exceptionex)
throwex;
finally
//關(guān)閉流讀取器
reader.Close();
#endregion
#region清空指定目錄
///summary
///清空指定目錄下所有文件及子目錄,但該目錄依然保存.
////summary
///paramname="directoryPath"指定目錄的絕對路徑/param
publicstaticvoidClearDirectory(stringdirectoryPath)
if(IsExistDirectory(directoryPath))
//刪除目錄中所有的文件
string[]fileNames=GetFileNames(directoryPath);
for(inti=0;ifileNames.Length;i++)
DeleteFile(fileNames[i]);
//刪除目錄中所有的子目錄
string[]directoryNames=GetDirectories(directoryPath);
for(inti=0;idirectoryNames.Length;i++)
DeleteDirectory(directoryNames[i]);
#endregion
#region清空文件內(nèi)容
///summary
///清空文件內(nèi)容
////summary
///paramname="filePath"文件的絕對路徑/param
publicstaticvoidClearFile(stringfilePath)
//刪除文件
File.Delete(filePath);
//重新創(chuàng)建該文件
CreateFile(filePath);
#endregion
#region刪除指定文件
///summary
///刪除指定文件
////summary
///paramname="filePath"文件的絕對路徑/param
publicstaticvo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026貴州中醫(yī)藥大學(xué)博士后招聘備考題庫及1套完整答案詳解
- 2026貴州醫(yī)科大學(xué)附屬白云醫(yī)院養(yǎng)老護理員招聘8人備考題庫及答案詳解(奪冠系列)
- 寶寶皮膚護理與預(yù)防濕疹
- 2025 小學(xué)一年級道德與法治上冊獨自在家不害怕課件
- 2026年工地安全管理標(biāo)準(zhǔn)化建設(shè)
- 遠(yuǎn)程會診護理的經(jīng)濟效益
- 職業(yè)醫(yī)學(xué)與工程學(xué)的聯(lián)合防護模式
- 臨潭事業(yè)編招聘2022年考試模擬試題及答案解析42
- 職業(yè)健康素養(yǎng)對醫(yī)療員工組織承諾的預(yù)測作用
- 職業(yè)健康檔案電子化傳輸過程中的加密技術(shù)應(yīng)用
- 2026云南昭通市搬遷安置局招聘公益性崗位人員3人備考題庫及答案詳解(考點梳理)
- 2026中國電信四川公用信息產(chǎn)業(yè)有限責(zé)任公司社會成熟人才招聘備考題庫及一套答案詳解
- 2025-2030心理健康行業(yè)市場發(fā)展分析及趨勢前景與投資戰(zhàn)略研究報告
- 技術(shù)副總年終總結(jié)
- 《馬年馬上有錢》少兒美術(shù)教育繪畫課件創(chuàng)意教程教案
- 天津市專升本高等數(shù)學(xué)歷年真題(2016-2025)
- 2025年化工原理考試題及答案
- 湖南省益陽市2024-2025學(xué)年高二上學(xué)期語文1月期末考試試卷(含答案)
- 幕墻工程售后質(zhì)量保障服務(wù)方案
- 鋁合金鑄造項目可行性研究報告
- 2024年西藏自治區(qū)事業(yè)單位《職業(yè)能力傾向測驗(D類)》考試真題及答案
評論
0/150
提交評論