LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C# 文件的隱藏、只讀、占用判斷介紹

admin
2025年7月14日 22:27 本文熱度 61

       在C#文件操作中,文件的隱藏屬性、只讀屬性以及文件占用狀態都是非常重要的概念,它們直接影響程序對文件的操作能力和可靠性。

1. 文件隱藏屬性(Hidden)

重要性:

  • 系統文件或配置文件通常被標記為隱藏,防止用戶誤操作

  • 程序可能需要訪問這些隱藏文件來完成特定功能

  • 用戶界面程序可能需要考慮是否顯示隱藏文件

2. 文件只讀屬性(ReadOnly)

重要性:

  • 防止重要文件被意外修改

  • 某些系統文件需要保持只讀狀態以保證系統穩定性

  • 程序需要正確處理只讀文件,避免操作失敗

3. 文件占用狀態

重要性:

  • 文件被占用時嘗試操作會導致異常

  • 需要正確處理文件占用情況,提高程序健壯性

  • 多線程/多進程環境下尤為重要

4、在程序中注意事項

(1)操作前檢查屬性:在修改或刪除文件前檢查只讀和隱藏屬性

(2)異常處理:對文件操作進行適當的try-catch處理

(3)用戶提示:當遇到只讀或占用文件時,給用戶明確的提示

(4)權限考慮:某些操作可能需要管理員權限

(5)資源釋放:確保及時釋放文件句柄,避免造成文件占用

以下為文件只讀、隱藏、占用判斷方法:

1、判斷文件是否被占用

/// <summary>/// 判斷文件是否被占用/// 如果文件已經被其它程序使用,則打開失敗。/// </summary>/// <param name="filePath">文件路徑</param>/// <returns>true:被占用</returns>public bool IsFileInUse(string filePath){    bool inUse = false;    if (!File.Exists(filePath)) return false;    try    {        using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.ReadWrite, FileShare.None))        {            inUse = false;            fs.Close();        }    }    catch    {        inUse = true;    }    return inUse;}

2、獲取指定目錄中所有隱藏的文件

/// <summary>/// 獲取指定目錄中所有隱藏的文件/// </summary>/// <param name="FileDir"></param>/// <returns></returns>public List<stringGetHideFile(string FileDir){    List<string> RetList = new List<string>();    string[] haidfile = Directory.GetFiles(FileDir, "*.*", SearchOption.AllDirectories);    foreach (string file in haidfile)    {        FileInfo fi = new FileInfo(file);        if ((fi.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)        {            RetList.Add(fi.FullName);        }    }    return RetList;}

3、獲取指定目錄中所有的只讀文件

/// <summary>/// 獲取指定目錄中所有的只讀文件/// </summary>/// <param name="FileDir"></param>/// <returns></returns>public List<stringGetReadOnly(string FileDir){    List<string> RetList = new List<string>();    string[] haidfile = Directory.GetFiles(FileDir, "*.*", SearchOption.AllDirectories);    foreach (string file in haidfile)    {        FileInfo fi = new FileInfo(file);        if ((fi.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)        {            RetList.Add(fi.FullName);        }    }    return RetList;}

4、創建隱藏文件夾

/// <summary>/// 創建隱藏文件夾/// </summary>/// <param name="path">文件路徑</param>public void CreateHiddenDires(string path){    DirectoryInfo di = new DirectoryInfo(path);    DateTime times = DateTime.Now;    if (!di.Exists)    {        di.Create();        di.LastWriteTime = times;        di.LastAccessTime = times;        SetDireHidden(path);    }}

5、設置文件夾隱藏

/// <summary>/// 設置文件夾隱藏/// </summary>/// <param name="path">文件路徑</param>public void SetDireHidden(string path){    DirectoryInfo dir = new DirectoryInfo(path);    File.SetAttributes(path, dir.Attributes | FileAttributes.Hidden & ~FileAttributes.ReadOnly);}

6、取消文件夾的隱藏只讀屬性

/// <summary> 取消文件夾的隱藏只讀屬性 </summary>/// <param name="path">文件名(包含路徑)</param>public void roHidDirNudo(string path){    DirectoryInfo di = new DirectoryInfo(path);    if (di.Exists) { File.SetAttributes(path, di.Attributes & ~FileAttributes.ReadOnly & ~FileAttributes.Hidden); }}

7、設置文件只讀+隱藏

/// <summary> /// 設置文件只讀+隱藏/// </summary>/// <param name="path">文件名(包含路徑)</param>public void SetFileHiddenReadOnly(string path){    FileInfo fi = new FileInfo(path);    File.SetAttributes(path, fi.Attributes | FileAttributes.Hidden | FileAttributes.ReadOnly);}

8、設置文件只讀

/// <summary> /// 設置文件只讀/// </summary>/// <param name="path">文件名(包含路徑)</param>public void SetFileReadOnly(string path){    FileInfo fi = new FileInfo(path);    File.SetAttributes(path, fi.Attributes | ~FileAttributes.Hidden | FileAttributes.ReadOnly);}

9、設置文件隱藏

/// <summary> /// 設置文件隱藏/// </summary>/// <param name="path">文件名(包含路徑)</param>public void SetFileHidden(string path){    FileInfo fi = new FileInfo(path);    File.SetAttributes(path, fi.Attributes | FileAttributes.Hidden | ~FileAttributes.ReadOnly);}

10、取消文件的只讀、隱藏屬性

/// <summary> 取消文件的只讀、隱藏屬性 </summary>/// <param name="path">文件名(包含路徑)</param>public void CancelFileHiddenReadOnly(string path){    FileInfo fi = new FileInfo(path);    if (fi.Exists)    {        File.SetAttributes(path, fi.Attributes & ~FileAttributes.Hidden & ~FileAttributes.ReadOnly);    }}

閱讀原文:原文鏈接


該文章在 2025/7/15 10:46:55 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
亚洲人成AⅤ在线播放 | 在线观看国产不卡秒播AV | 精品一区二区久久久久久久 | 污网站在线观看 | 中文字幕欧美日本亚洲 | 亚洲日韩国产麻豆 |