在C#文件操作中,文件的隱藏屬性、只讀屬性以及文件占用狀態(tài)都是非常重要的概念,它們直接影響程序?qū)ξ募牟僮髂芰涂煽啃浴?/section>1. 文件隱藏屬性(Hidden)
重要性:
2. 文件只讀屬性(ReadOnly)
重要性:
3. 文件占用狀態(tài)
重要性:
4、在程序中注意事項(xiàng)
(1)操作前檢查屬性:在修改或刪除文件前檢查只讀和隱藏屬性
(2)異常處理:對(duì)文件操作進(jìn)行適當(dāng)?shù)膖ry-catch處理
(3)用戶提示:當(dāng)遇到只讀或占用文件時(shí),給用戶明確的提示
(4)權(quán)限考慮:某些操作可能需要管理員權(quán)限
(5)資源釋放:確保及時(shí)釋放文件句柄,避免造成文件占用
1、判斷文件是否被占用
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、獲取指定目錄中所有隱藏的文件
public List<string> GetHideFile(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、獲取指定目錄中所有的只讀文件
public List<string> GetReadOnly(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、創(chuàng)建隱藏文件夾
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、設(shè)置文件夾隱藏
public void SetDireHidden(string path){ DirectoryInfo dir = new DirectoryInfo(path); File.SetAttributes(path, dir.Attributes | FileAttributes.Hidden & ~FileAttributes.ReadOnly);}
6、取消文件夾的隱藏只讀屬性
public void roHidDirNudo(string path){ DirectoryInfo di = new DirectoryInfo(path); if (di.Exists) { File.SetAttributes(path, di.Attributes & ~FileAttributes.ReadOnly & ~FileAttributes.Hidden); }}
7、設(shè)置文件只讀+隱藏
public void SetFileHiddenReadOnly(string path){ FileInfo fi = new FileInfo(path); File.SetAttributes(path, fi.Attributes | FileAttributes.Hidden | FileAttributes.ReadOnly);}
8、設(shè)置文件只讀
public void SetFileReadOnly(string path){ FileInfo fi = new FileInfo(path); File.SetAttributes(path, fi.Attributes | ~FileAttributes.Hidden | FileAttributes.ReadOnly);}
9、設(shè)置文件隱藏
public void SetFileHidden(string path){ FileInfo fi = new FileInfo(path); File.SetAttributes(path, fi.Attributes | FileAttributes.Hidden | ~FileAttributes.ReadOnly);}
10、取消文件的只讀、隱藏屬性
public void CancelFileHiddenReadOnly(string path){ FileInfo fi = new FileInfo(path); if (fi.Exists) { File.SetAttributes(path, fi.Attributes & ~FileAttributes.Hidden & ~FileAttributes.ReadOnly); }}
閱讀原文:原文鏈接
該文章在 2025/7/21 10:28:29 編輯過