最近学习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. AspNetCore架构图

    asp,net,core  All-in-One App All-in-One applications N-Layer 典型的应用层 分层项目骨架 Clean Architecture Layers ...

  2. koa2安装

    安装 1. npm install koa-generator -g 2. Koa2 test-koa2 3. npm install & npm run dev 看package.json里 ...

  3. LeetCode - 82、删除排序链表中的重复元素 II

    给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3->3->4->4->5    输出: 1 ...

  4. Spring -08 -自动注入 -byName/byType/constructor -全局使用default-autowire=” byName"

    1.在Spring 配置文件中对象名和ref=”id”id 名相同使用自动注入,可以不配置<property/>2.两种配置办法 2.1在<bean>中通过 autowire= ...

  5. test20190829 神大校赛模拟

    100+100+0=200,聪明搬题人题面又出锅了. 最短路径(path) 给定有向图,包含 n 个节点和 m 条有向边. 一条A 到 B 的路径是最短路径当且仅当不存在另一条从A 到 B 的路径比它 ...

  6. pandas数据类型(二)与numpy的str和object类型之间的区别

    现象: Numpy区分了str和object类型,其中dtype(‘S’)和dtype(‘O’)分别对应于str和object. 然而,pandas缺乏这种区别 str和object类型都对应dtyp ...

  7. Linux下dstat的安装(适用任何版本)

    dstat下载地址:https://pan.baidu.com/s/1jHTEoWe 1.上传后,解压: 2.进入解压后的目录:cd dstat-0.7.3/ 3.make 4.make instal ...

  8. learning java 字符串常用操作

    // 字符串索引取值 "; System.)); // 字符串比较 "; "; "; System.out.println(s1.compareTo(s2)); ...

  9. KMP 最小循环节

    博客  

  10. HTML5全屏操作API

    一.定义:HTML5规范允许自定义网页上的任一元素全屏显示,存在兼容问题 二.使用: ①基本: Node.RequestFullScreen()开启全屏显示 Node.CancelFullScreen ...