kotlin单个文件及文件夹复制例子
最近学习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单个文件及文件夹复制例子的更多相关文章
- Python学习笔记(20)-文件和文件夹的移动、复制、删除、重命名
一,概述 python中对文件和文件夹进行移动.复制.删除.重命名,主要依赖os模块和shutil模块,要死记硬背这两个模块的方法还是比较困难的,可以用一个例子集中演示文件的移动.复制.删除.重命名, ...
- java文件和文件夹复制、删除、移动操作
java文件和文件夹复制.删除.移动操作 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputS ...
- (转)每天一个linux命令(8):cp 命令,复制文件和文件夹
场景:自动部署脚本中为了部署方便,将配置文件放在服务器端,每次部署都使用服务端的配置文件覆盖上传上去的配置文件. cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一. 一般情况下,she ...
- Java中将文件夹复制到另一个文件夹
文件夹的拷贝*** public static void copyDir(String sourcePath, String newPath) { File start = new File(sour ...
- Python脚本:linux上将筛选的文件夹复制到另一个目录,保存目录结构以及文件和文件夹操作方法
import os,shutil def newDir(dir_path): if not os.path.exists(dir_path): os.makedirs(dir_path) def co ...
- C# 文件及文件夹深度复制
完善了下 文件中的文件及文件夹中的复制!如果有更优解决方案请不吝指教 protected void FileDepthCopy(string source, string target){ if (D ...
- Eclipse点击工程结构里任意文件或文件夹变拖动(或复制)的bug
本文为原创文章,欢迎转载,但请注明出处http://www.cnblogs.com/yexiubiao/p/5204601.html,未在文章页面明显位置给出原文连接的,将保留追究法律责任的权利. 在 ...
- Linux_文件及文件夹[创建][复制][移动][删除][重命名]
一.文件/文件夹创建 1.文件的创建 touch , vi/vim/nano , ... 语 法: touch [-acfm][-d <日期时间>][-r <参考文件或目 录&g ...
- linux复制多个文件到文件夹
linux复制多个文件到文件夹 cp file1 file2 file3 directory即将文件file1 file2 file3复制到directory
随机推荐
- mysqlslap压测
mysqlslap 是MySQL自带的压测工具: -P --create-schema=test -S /tmp/mysql_sandbox18601.sock --number-of-queries ...
- pyspark minHash LSH 查找相似度
先看看官方文档: MinHash for Jaccard Distance MinHash is an LSH family for Jaccard distance where input feat ...
- WCF 学习系列——WCF的学习基础
这个系列的博客由WCF4 高级编程学习记录,如有错误请指正. 首先介绍一些概念: SOA: (Service-Oriented Architecture 面向服务架构),一种架构方法,也是一种编程模式 ...
- SpringCloud组件相关
一.前言 原文地址:https://mp.weixin.qq.com/s/mwn2X0G9UgUDz1sgGgL1mA 认识我的朋友可能都知道我这阵子去实习啦,去的公司说是用SpringCloud(但 ...
- PHP实现DES/ECB/PKCS5Padding加密兼容Java SHA1PRNG算法
在使用php调用java接口时,遇到了两边加密结果不一致的问题.经过沟通发现接口方使用了SHA1PRNG算法,对原密码计算后做为Des的加密Key. 因此在php中也需要先对原密码做相应计算才能保持结 ...
- Django之路——9 Django的form组件的信息校验
forms组件 校验字段功能 针对一个实例:注册用户讲解. 模型:models.py class UserInfo(models.Model): name=models.CharField(max_l ...
- 用python爬取全网妹子图片【附源码笔记】
这是晚上没事无聊写的python爬虫小程序,专门爬取妹子图的,养眼用的,嘻嘻!身为程序狗只会这个了! 废话不多说,代码附上,仅供参考学习! """ 功能:爬取妹子图全网妹 ...
- 深入理解flask 笔记
===sqlalchemy创建的数据模型中:1 字段是类属性 [模型中定义的字段是类属性,表单中定义的字段也是类字段] 2 若数据库不支持bool类型,则sqlalchemy会自动将bool转成0 ...
- jquery操作按钮修改对应input属性
点击右侧的修改按钮,对应的input中的disabled和readonly得属性修改 $(".buttonxg button").click(function(){ $(this) ...
- HDU - 3555 - Bomb(数位DP)
链接: https://vjudge.net/problem/HDU-3555 题意: The counter-terrorists found a time bomb in the dust. Bu ...