`
net_liu
  • 浏览: 233108 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

磁盘文件的操作管理

 
阅读更多
class FileOperations
    {
        /// <summary>
        /// 判断是否是隐藏文件
        /// </summary>
        /// <param name="path">文件路径</param>
        /// <returns></returns>
        public static bool IsHidden(string path)
        {
            FileAttributes MyAttributes = File.GetAttributes(path);
            string MyFileType = MyAttributes.ToString();
            if (MyFileType.LastIndexOf("Hidden") != -1) //是否隐藏文件
            {
                return true;
            }
            else
                return false;
        }



        ///<summary>
        ///创建指定目录
        ///</summary>
        ///<param name="targetDir"></param>
        public static void CreateDirectory(string targetDir)
        {
            DirectoryInfo dir = new DirectoryInfo(targetDir);
            if (!dir.Exists)
                dir.Create();
        }


        ///<summary>
        ///删除指定目录的所有文件和子目录
        ///</summary>
        ///<param name="targetDir">操作目录</param>
        ///<param name="delSubDir">如果为true,包含对子目录的操作</param>
        public static void DeleteFiles(string targetDir, bool delSubDir)
        {
            foreach (string fileName in Directory.GetFiles(targetDir))
            {
                File.SetAttributes(fileName, FileAttributes.Normal);
                File.Delete(fileName);
            }
            if (delSubDir)
            {
                DirectoryInfo dir = new DirectoryInfo(targetDir);
                foreach (DirectoryInfo subDi in dir.GetDirectories())
                {
                    DeleteFiles(subDi.FullName, true);
                    subDi.Delete();
                }

            }
        }

        ///<summary>
        ///删除指定目录的所有子目录,不包括对当前目录文件的删除
        ///</summary>
        ///<param name="targetDir">目录路径</param>
        public static void DeleteSubDirectory(string targetDir)
        {
            foreach (string subDir in Directory.GetDirectories(targetDir))
            {
                DeleteDirectory(subDir);
            }
        }

        ///<summary>
        ///删除指定目录,包括当前目录和所有子目录和文件
        ///</summary>
        ///<param name="targetDir">目录路径</param>
        public static void DeleteDirectory(string targetDir)
        {
            DirectoryInfo dirInfo = new DirectoryInfo(targetDir);
            if (dirInfo.Exists)
            {
                DeleteFiles(targetDir, true);
                dirInfo.Delete(true);
            }
        }



        ///<summary>
        ///剪切指定目录的所有文件
        ///</summary>
        ///<param name="sourceDir">原始目录</param>
        ///<param name="targetDir">目标目录</param>
        ///<param name="overWrite">如果为true,覆盖同名文件,否则不覆盖</param>
        ///<param name="moveSubDir">如果为true,包含目录,否则不包含</param>
        public static void MoveFiles(string sourceDir, string targetDir, bool overWrite, bool moveSubDir)
        {
            //移动当前目录文件
            foreach (string sourceFileName in Directory.GetFiles(sourceDir))
            {
                string targetFileName = Path.Combine(targetDir, sourceFileName.Substring(sourceFileName.LastIndexOf("\\") + 1));
                if (File.Exists(targetFileName))
                {
                    if (overWrite == true)
                    {
                        File.SetAttributes(targetFileName, FileAttributes.Normal);
                        File.Delete(targetFileName);
                        File.Move(sourceFileName, targetFileName);
                    }
                }
                else
                {
                    File.Move(sourceFileName, targetFileName);
                }
            }
            if (moveSubDir)
            {
                foreach (string sourceSubDir in Directory.GetDirectories(sourceDir))
                {
                    string targetSubDir = Path.Combine(targetDir, sourceSubDir.Substring(sourceSubDir.LastIndexOf("\\") + 1));
                    if (!Directory.Exists(targetSubDir))
                        Directory.CreateDirectory(targetSubDir);
                    MoveFiles(sourceSubDir, targetSubDir, overWrite, true);
                    Directory.Delete(sourceSubDir);
                }
            }
        }


        ///<summary>
        ///复制指定目录的所有文件
        ///</summary>
        ///<param name="sourceDir">原始目录</param>
        ///<param name="targetDir">目标目录</param>
        ///<param name="overWrite">如果为true,覆盖同名文件,否则不覆盖</param>
        ///<param name="copySubDir">如果为true,包含目录,否则不包含</param>
        public static void CopyFiles(string sourceDir, string targetDir, bool overWrite, bool copySubDir)
        {
            //复制当前目录文件
            foreach (string sourceFileName in Directory.GetFiles(sourceDir))
            {
                string targetFileName = Path.Combine(targetDir, sourceFileName.Substring(sourceFileName.LastIndexOf("\\") + 1));
                if (File.Exists(targetFileName))
                {
                    if (overWrite == true)
                    {
                        File.SetAttributes(targetFileName, FileAttributes.Normal);
                        File.Copy(sourceFileName, targetFileName, overWrite);
                    }
                }
                else
                {
                    File.Copy(sourceFileName, targetFileName, overWrite);
                }
            }
            //复制子目录
            if (copySubDir)
            {
                foreach (string sourceSubDir in Directory.GetDirectories(sourceDir))
                {
                    string targetSubDir = Path.Combine(targetDir, sourceSubDir.Substring(sourceSubDir.LastIndexOf("\\") + 1));
                    if (!Directory.Exists(targetSubDir))
                        Directory.CreateDirectory(targetSubDir);
                    CopyFiles(sourceSubDir, targetSubDir, overWrite, true);
                }
            }
        }
    }

 

分享到:
评论

相关推荐

    模拟一个小型磁盘文件管理系统

    设计一个简单的磁盘文件管理系统,用文件模拟磁盘,用数组模拟缓冲区,要求实现: (1)支持多级目录结构,支持文件的绝对路径访问; (2)文件的逻辑结构采用流式(字节流)结构,物理结构采用链式结构中的显式链...

    模拟实现采用二级目录结构的磁盘文件系统中的文件操作。

    模拟实现采用二级目录结构的磁盘文件系统中的文件操作。 文件系统是操作系统中管理和存取信息的机构,它具有“按名存取”的功能,不仅方便用户,而且能提高系统效率且安全可靠。 在用户程序中可使用文件系统提供的...

    模拟实现采用二级目录结构的磁盘文件系统中的文件操作

    ### 知识点详解 #### 一、二级目录结构及其...通过以上分析可以看出,本实习通过模拟实现采用了二级目录结构的磁盘文件系统中的文件操作,不仅加深了对文件系统原理的理解,还锻炼了数据结构设计和算法实现的能力。

    模拟操作系统 os 进程 设备 磁盘 文件管理实现 比较简单 c 语言版

    在这个“模拟操作系统 os 进程 设备 磁盘 文件管理实现 比较简单 c 语言版”中,我们可以看到一个简化版的操作系统实现,主要关注进程管理、设备管理和文件管理这三个关键领域,所有这些都是使用C语言编写的。...

    操作系统文件及磁盘管理

    通过理解以上知识点,并结合C#的类库,开发者可以高效地实现操作系统文件和磁盘的管理,包括日常的文件操作、磁盘信息获取以及高级的文件权限控制和性能优化。在实际项目中,应根据具体需求选择合适的方法和技术,...

    磁盘文件管理系统操作系统

    通过设计和调试一个简单的文件系统,主要是模拟文件操作命令的执行,来模拟文件管理,使学生对主要文件操作命令的实质和执行过程有比较深入的了解,掌握它们的基本实施方法。文件管理的主要任务是对用户文件和系统...

    操作系统课程设计 模拟磁盘文件管理的程序

    操作系统课程设计中的“模拟磁盘文件管理程序”旨在让学生理解和实现操作系统中文件系统的部分功能。在这一设计中,主要涉及以下几个关键知识点: 1. **数据结构设计**:首先,需要自定义磁盘文件管理的数据结构。...

    实验一 磁盘管理和文件系统管理

    一、实验目的:掌握Windows Server 2008系统中的磁盘管理和文件系统管理,包括基本磁盘中分区的创建,动态磁盘中各种动态卷的创建。

    操作系统磁盘文件管理源码.doc

    "操作系统磁盘文件管理源码分析" 操作系统磁盘文件管理是计算机科学中一个重要的领域,它涉及到计算机系统中文件的存储、管理和访问。该领域的研究和应用对计算机系统的性能和安全性产生了深远的影响。以下是对操作...

    磁盘文件管理

    在IT领域,磁盘文件管理是一项至关重要的任务,它涉及到计算机系统如何组织、存储和访问数据。本程序是一个简单的磁盘管理工具,旨在帮助用户更有效地管理他们的文件系统。下面我们将详细探讨磁盘文件管理的一些核心...

    磁盘文件管理系统课程设计

    在计算机科学领域,磁盘文件管理系统是操作系统的重要组成部分,它负责管理和组织存储在硬盘上的数据。本课程设计的目的是让学生深入理解文件系统的工作原理,并能够实际编写或设计一个简单的磁盘文件管理系统。以下...

    磁盘管理 文件监控 修改文件

    本文将深入探讨这两个主题,并结合"修改文件"这一操作,解析如何有效地进行磁盘管理,实施文件监控,以及安全地修改文件。 首先,磁盘管理是操作系统中的一个基础功能,它包括磁盘分区、格式化、清理、优化等多个...

    操作系统课程设计报告-建立基于磁盘存储设备的FAT文件系统_磁盘文件系统

    此外,还需要提供友好的用户界面,展示磁盘文件系统的状态和空间使用情况,以及虚拟磁盘的转储功能,允许信息在磁盘和内存之间交换。 通过这个课程设计,学生不仅能巩固书本上的理论知识,如FAT文件系统的工作原理...

    磁盘文件管理系统(asp.net)

    总结,通过ASP.NET构建的磁盘文件管理系统结合了文件操作、权限控制和用户交互,实现了高效、安全的文件管理。这个系统不仅可以提高工作效率,还为企业数据安全提供了保障。理解并掌握这些技术,对于提升开发者在Web...

    国家开放大学 网络操作系统管理 形考任务3 磁盘存储与文件服务实训

    ### 国家开放大学网络操作系统管理形考任务3:磁盘存储与文件服务实训 #### 实训背景与目的 本次实训旨在通过实际操作的方式帮助学生深入理解并掌握基本磁盘和动态磁盘的区别及应用、卷的管理方法以及重复数据删除...

    磁盘文件支持库

    在编程领域,磁盘文件操作是必不可少的一部分。无论是存储用户数据、记录日志还是保存配置文件,都需要对磁盘有深入的理解和控制。磁盘文件支持库V11静态版DiskFileAPI,作为该库的一个版本,可能包含了以下关键知识...

    操作系统课程设计---模拟磁盘文件管理的程序

    ### 操作系统课程设计——模拟磁盘文件管理的程序 #### 一、课程设计目标与背景 本课程设计旨在通过模拟磁盘文件管理系统的方式,帮助学生深入理解操作系统中文件管理的核心概念和技术。通过亲手实现一个简易的...

    文件操作 将一个磁盘文件中的信息复制到另一个磁盘文件中

    编程的目的是将处理的或计算的数据以所需求的方式显示,当数据量大时,需暂时存在磁盘内,一段时间后再一起处理,处理完的数据变成...就是所谓信息流,所有这种信息的收集,管理与应用,都需要不断从磁盘内访问文件数据

    磁盘文件操作模拟内存分配与回收 C++编写

    在计算机科学中,内存管理和磁盘文件操作是两个至关重要的概念。本文将深入探讨如何使用C++编程语言来模拟内存分配与回收,并结合磁盘文件操作进行实践。 内存分配是程序运行时为变量、对象或数据结构分配空间的...

Global site tag (gtag.js) - Google Analytics