`

嵌套删除多级目录, 删除单级目录, 创建多级目录, 复制文件

 
阅读更多

备一份自己用:

	/**
	 * 嵌套删除多级目录
	 * 
	 * @param[in] oPath 目录
	 */
	private static void deleteFolder(final File oPath)
	{
		final File[] dirs = oPath.listFiles();
		if (dirs != null)
		{
			for (final File oSubPath : dirs)
			{
				if (oSubPath.isDirectory())
				{
					deleteFolder(oSubPath);
				}
			}
		}
		oPath.delete();
	}

	/**
	 * 删除单级目录
	 * 
	 * @param[in] sPath 目录
	 */
	public static void deleteFolder(final String sPath)
	{
		final File oPath = new File(sPath);
		if (!oPath.exists() || !oPath.isDirectory())
		{
			return;
		}

		deleteFolder(oPath);
	}

	/**
	 * 创建多级目录
	 * 
	 * @param[in] sPath 目录
	 * @return 是否创建成功
	 */
	public static boolean createFolder(final String sPath)
	{
		try
		{
			final File oPath = new File(sPath);
			if (!oPath.exists())
			{
				oPath.mkdirs();
			}
			return true;
		}
		catch (final Exception e)
		{
			return false;
		}
	}

	/**
	 * 复制文件
	 * 
	 * @param[in] sFile1
	 * @param[in] sFile2
	 * @throws IOException
	 */
	public static void copyFile(final String sFile1, final String sFile2) throws IOException
	{
		final File oFile1 = new File(sFile1);
		if (oFile1.exists())
		{
			final String sPath = sFile2.substring(0, sFile2.lastIndexOf('\\'));
			createFolder(sPath); // 确保目标目录存在

			final File oFile2 = new File(sFile2);
			final RandomAccessFile inData = new RandomAccessFile(oFile1, "r");
			final RandomAccessFile opData = new RandomAccessFile(oFile2, "rw");
			final FileChannel inChannel = inData.getChannel();
			final FileChannel opChannel = opData.getChannel();
			inChannel.transferTo(0, inChannel.size(), opChannel);
			//=========================上一行代码与下面的代码功能相同=========================
			//			final long size = inChannel.size();
			//			final MappedByteBuffer buf = inChannel.map(FileChannel.MapMode.READ_ONLY, 0, size);
			//			opChannel.write(buf);
			//=================================================================
			inChannel.close();
			inData.close();
			opChannel.close();
			opData.close();
		}
	}

 

分享到:
评论

相关推荐

    易语言模块创建多级目录.rar

    2. **递归创建目录**:创建多级目录意味着需要创建一系列嵌套的目录结构。模块会根据提供的路径字符串,如“一级目录\\二级目录\\三级目录”,逐级进行创建。如果某个中间目录不存在,模块会先创建该目录,然后再...

    Node.js-ListView列表单级单选单级多选多级单选多级多选效果展示

    本教程将详细讲解如何实现ListView的单级单选、单级多选以及多级单选和多级多选的效果。 1. **单级单选**: 在ListView中实现单级单选,通常使用CheckedTextView或者自定义View,配合OnItemClickListener监听器来...

    jQuery多级下拉select选择菜单插件

    为了解决这个问题,jQuery插件应运而生,可以扩展这个功能,使开发者能够创建具有多级嵌套的下拉菜单。 "jQuery多级下拉select选择菜单插件"通常包括以下核心特性: 1. **层次结构**:允许将选项组织成多个级别,...

    文件夹创建和删除,集合的使用例子

    在编程中,例如在Python中,我们可以使用`os`模块的`mkdir()`或`os.makedirs()`函数来创建单级或多级目录。`mkdir()`用于创建单个文件夹,而`makedirs()`可以递归地创建多级目录结构,即使中间的路径部分不存在。...

    多级listview

    在Android开发中,当面临需要展示层次结构复杂的数据时,如目录树、组织架构等,传统的ListView往往无法满足需求,因为它只能展示单级列表。这时,我们需要转向更强大的组件,如ExpandableListView来实现二级或者...

    Android多级下拉列表菜单

    在Android应用开发中,创建一个类似大众点评或美团的多级下拉列表菜单是一项常见的需求。这样的功能可以方便用户在导航或筛选时快速选择不同层级的分类。在本项目中,开发者实现了一个可复用的组件,名为...

    操作系统:第5章 文件系统.pdf

    常见的目录结构有线性(单级目录)、树形(多级目录)和网络状(如在分布式文件系统中)。树形目录结构允许文件嵌套在子目录中,形成文件夹层级,提高了查找效率。例如,UNIX系统中的“/”代表根目录,而Windows系统...

    详解Java中的File文件类以及FileDescriptor文件描述类

    在Java编程语言中,`File`类是处理文件和目录的核心工具,提供了丰富的API用于创建、删除、重命名以及查询文件和目录等操作。`File`类直接继承自`Object`,并实现了`Serializable`和`Comparable`接口,使得File对象...

    8259单级中断控制器实验.zip

    8259单级中断控制器是Intel公司设计的一种中断管理芯片,主要用于早期的微处理器系统,如8086和8088等。在个人计算机系统中,中断技术是核心部分,它允许CPU处理突发事件,如键盘输入、定时器溢出等,而不必持续检查...

    jQuery动态添加多级收缩菜单.zip

    一个多级收缩菜单通常由一个父级菜单项和多个子级菜单项组成,子级菜单可以是单级或多级的。在HTML中,我们可以用`<ul>`和`<li>`元素构建这样的结构。例如: ```html 菜单1 子菜单1.1 子菜单1.2 菜单2 ...

    纯javascript轻量级可嵌套的隐藏侧边栏插件

    这款插件的特性在于其可嵌套的侧边栏设计,允许用户在不增加太多复杂性的情况下创建层次丰富的导航结构。 在网页设计中,侧边栏通常被用来放置导航菜单、工具栏或者辅助信息,而隐藏侧边栏则是在节省屏幕空间的同时...

    操作系统期末试题及答案

    多级目录结构则是更为复杂,可以包含多个子目录嵌套。 4. **文件的物理结构**:文件的物理组织方式包括顺序结构、链接结构和索引结构。顺序结构指数据在磁盘上连续存放;链接结构中,文件的数据分散存放,通过链接...

    select2-to-tree:Select2-to-Tree扩展了Select2以支持任意级别的嵌套。

    由于创建嵌套选项时Select2会退回到,因此仅支持单级嵌套。 不能保证任何其他级别的嵌套都无法在所有浏览器和设备上正确显示。 Select2-to-Tree扩展了Select2以支持任意级别的嵌套。 Select2兼容性 选择2 4+ ...

    论文研究-单元化三级装卸搬运作业链集成优化的三层进化算法.pdf

    传统物流作业调度主要对单级或两级之间的协调问题进行建模和求解,缺乏对物流作业多级特征的考虑. 针对物流装卸搬运多级作业链的复杂性,以批量作业完成时间为目标,研究...

    python list多级排序知识点总结

    Python列表的多级排序是一种处理复杂排序需求的高级技巧,特别是在处理包含多个元素的嵌套列表时。在Python 3中,`cmp` 函数已不再可用,取而代之的是使用`key`参数结合`lambda`表达式来定义排序规则。本文将深入...

    计算机组成原理实验,包含了实验报告

    其中,"单级中断"和"多级中断"的cicr文件有特别的说明:博主已经对SB(可能是指“状态寄存器”或“存储块”)进行了修改。因此,在分析和编写这两个中断级别的代码时,你可以参照其他未修改的cicr文件,特别是它们的...

    小书匠语法说明之无序列表1

    这些符号可以创建一级无序列表,而通过增加缩进则可实现多级嵌套列表。 2. **单级无序列表**: 创建单级无序列表,只需在每个条目前加上*、-或+。例如: ``` - 条目1 - 条目2 - 条目3 ``` 这将生成一个简单的无序...

    java导出excel复杂表头

    本示例涉及的主题是“java导出excel复杂表头”,这意味着我们要处理的不是简单的单级表头,而是包含多级或者多层次结构的表头。在描述中提到这是一个可以直接运行的Java工程,但需要进一步改造为Web下载服务。 首先...

    系统菜单全面操作.zip易语言项目例子源码下载

    3. **多级菜单**:除了单级菜单,易语言还支持创建多级子菜单,以实现更复杂的菜单结构。源码中可能包含如何创建嵌套菜单的示例,这对于组织和分类菜单功能非常有用。 4. **菜单图标和快捷键**:为了让菜单更具可...

    jQuery高仿真移动手机滑动侧边栏布局插件

    2. **多级菜单**:除了基础的侧边栏,`jQuery.mmenu`还支持创建多级嵌套的子菜单,这在展示复杂层级关系时非常有用。 3. **自定义配置**:开发者可以通过配置参数来调整侧边栏的样式、行为和触发事件,如滑动速度、...

Global site tag (gtag.js) - Google Analytics