最近学习kotlin,把java中的单个文件及包含文件夹的文件
复制操作改写为kotlin的代码,主要熟悉kotlin文件操作以及递归调用操作方法
演示代码如下:

package com.exam.filedemo

import java.io.*
import java.lang.Exception
import java.util.* /**
* 单个文件复制
*/
fun copyfile(srcFile: File, destFile: File) { var fis = FileInputStream(srcFile);
var fos = FileOutputStream(destFile) var bis = BufferedInputStream(fis)
var bos = BufferedOutputStream(fos) var buf = ByteArray(1024) var len = 0;
while (true) {
len = bis.read(buf)
if (len == -1) break;
bos.write(buf, 0, len)
}
fis.close()
fos.close() } /**
* 带文件夹复制
*/
fun copyDirToDir(srcFile: File, destFile: File) { for (f in srcFile.listFiles()) {
//是文件就拷贝
var newfile = File(destFile.absolutePath, f.name)
if (f.isFile) {
println("${f.absolutePath}-->${newfile.absolutePath}")
copyfile(f, newfile)
} else { //如果是目录就递归复制
//如果目标文件不存在,则创建
if (!newfile.exists()) {
if (!newfile.mkdir()) return
}
copyDirToDir(f, newfile)
}
}
return
} /**
* 提示输入文件目录
*/
fun getDir(msg: String): String {
var path = ""
while (true) {
var sc = Scanner(System.`in`)
println("$msg")
path = sc.nextLine()
if (File(path).isDirectory) {
break;
} }
return path
} fun main() { var srcFile = File("")
var destFile = File("")
srcFile = File(getDir("请输入复制的源文件目录:"))
destFile = File(getDir("请输入复制的目标文件目录:"))
try {
copyDirToDir(srcFile, destFile)
} catch (e: Exception) {
e.printStackTrace()
} println("完成")
}

kotlin单个文件及文件夹复制例子的更多相关文章

  1. Python学习笔记(20)-文件和文件夹的移动、复制、删除、重命名

    一,概述 python中对文件和文件夹进行移动.复制.删除.重命名,主要依赖os模块和shutil模块,要死记硬背这两个模块的方法还是比较困难的,可以用一个例子集中演示文件的移动.复制.删除.重命名, ...

  2. java文件和文件夹复制、删除、移动操作

    java文件和文件夹复制.删除.移动操作 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputS ...

  3. (转)每天一个linux命令(8):cp 命令,复制文件和文件夹

    场景:自动部署脚本中为了部署方便,将配置文件放在服务器端,每次部署都使用服务端的配置文件覆盖上传上去的配置文件. cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一. 一般情况下,she ...

  4. Java中将文件夹复制到另一个文件夹

    文件夹的拷贝*** public static void copyDir(String sourcePath, String newPath) { File start = new File(sour ...

  5. Python脚本:linux上将筛选的文件夹复制到另一个目录,保存目录结构以及文件和文件夹操作方法

    import os,shutil def newDir(dir_path): if not os.path.exists(dir_path): os.makedirs(dir_path) def co ...

  6. C# 文件及文件夹深度复制

    完善了下 文件中的文件及文件夹中的复制!如果有更优解决方案请不吝指教 protected void FileDepthCopy(string source, string target){ if (D ...

  7. Eclipse点击工程结构里任意文件或文件夹变拖动(或复制)的bug

    本文为原创文章,欢迎转载,但请注明出处http://www.cnblogs.com/yexiubiao/p/5204601.html,未在文章页面明显位置给出原文连接的,将保留追究法律责任的权利. 在 ...

  8. Linux_文件及文件夹[创建][复制][移动][删除][重命名]

    一.文件/文件夹创建 1.文件的创建 touch , vi/vim/nano , ... 语   法: touch [-acfm][-d <日期时间>][-r <参考文件或目 录&g ...

  9. linux复制多个文件到文件夹

    linux复制多个文件到文件夹 cp file1 file2 file3 directory即将文件file1 file2 file3复制到directory

随机推荐

  1. php5.6 的mcrypt_encrypt 函数可以和5.5.9的行为一样

    php5.5.9 -----------------------$output = "test  php !!" $key = "abcd123456789"; ...

  2. keras模块学习之-参数初始化与对象调用-笔记

    本笔记由博客园-圆柱模板 博主整理笔记发布,转载需注明,谢谢合作! 参数初始化(Initializations) 这个模块的作用是在添加layer时调用init进行这一层的权重初始化,有两种初始化方法 ...

  3. 什么情况下使用large training data会非常有效

    收集大量的数据可能比算法的优劣更重要 Banko和Brill在2001年做了一个研究,是关于在句子中对易混单词进行识别,画出了上图的右边的那个图,这个图显示了对于不同的算法,它们的表现相似,但是随着t ...

  4. Oracle 查询结果去重保留一项

    首先因为需要查询很多字段,也就排除了使用distinct的可能性. 1.1 原始sql select finalSql.* from (select '' SMS_CONTENT, ' as 短信发出 ...

  5. python之钉钉机器人zabbix报警

    转自:https://blog.51cto.com/m51cto/2051945 首先在钉钉群聊里添加一个自定义的机器人 并复制webhook的内容 https://oapi.dingtalk.com ...

  6. Calling Extraterrestrial Intelligence Again POJ 1411

    题目链接:http://poj.org/problem?id=1411 题目大意:找两个素数p,q满足a/b<=p/q<=1 且p*q<=m,求p*q最大的一组素数对. 第一次想的是 ...

  7. 后端程序员常用的linux命令

    1. windows   ctrl+ -  终端窗口变小      ctrl + shift + =  终端窗口变大 1. mac   command+ -  终端窗口变小      command  ...

  8. 【JQuery】操作前端控件知识笔记

    一.jQuery操作复选框checkbox 1.设置选中.取消选中.获取被选中的值.判断是否选中等 注意:操作checked.disabled.selected属性,强制建议只用prop()方法!!, ...

  9. #6085. 「美团 CodeM 资格赛」优惠券

    题目描述 用last[x]表示对x进行的上一次操作的位置,vis[x]表示x是否在大楼内. Splay维护'?'的位置. 若x要进楼: 1.若x已在楼内,则去找last[x]到i之间是否有'?',若有 ...

  10. VIJOS PID221 / 烦人的幻灯片

     暴力出奇迹,学长诚不欺我. PID221 / 烦人的幻灯片 2017-04-14 19:47:08 运行耗时:30 ms 运行内存:12292 KB 查看最后一次评测记录 题目描述 李教授于今天下午 ...