创建文件夹 并 实现文件(夹)拷贝
来源:互联网 发布:api接口网站源码 编辑:程序博客网 时间:2024/06/02 15:53
往清单文件中添加权限:
<!--往sdcard中写入数据的权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <!--在sdcard中创建/删除文件的权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission> <!--往sdcard中读取数据的权限 --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
public class CopyUtils { /** * 复制单个文件 * @param oldPath String 原文件路径 如:c:/fqf.txt * @param newPath String 复制后路径 如:f:/fqf.txt * @return boolean */ public void copyFile(String oldPath, String newPath) { try { int bytesum = 0; int byteread = 0; File oldfile = new File(oldPath); if (oldfile.exists()) { //文件存在时 InputStream inStream = new FileInputStream(oldPath); //读入原文件 FileOutputStream fs = new FileOutputStream(newPath); byte[] buffer = new byte[1444]; int length; while ( (byteread = inStream.read(buffer)) != -1) { bytesum += byteread; //字节数 文件大小 System.out.println(bytesum); fs.write(buffer, 0, byteread); } inStream.close(); } } catch (Exception e) { System.out.println("复制单个文件操作出错"); e.printStackTrace(); } } /** * 复制整个文件夹内容 * @param oldPath String 原文件路径 如:c:/fqf * @param newPath String 复制后路径 如:f:/fqf/ff * @return boolean */ public void copyFolder(String oldPath, String newPath) { try { mkdirs(newPath);//如果文件夹不存在 则建立新文件夹 File a=new File(oldPath); String[] file=a.list(); File temp=null; for (int i = 0; i < file.length; i++) { if(oldPath.endsWith(File.separator)){ temp=new File(oldPath+file[i]); } else{ temp=new File(oldPath+ File.separator+file[i]); } if(temp.isFile()){ FileInputStream input = new FileInputStream(temp); FileOutputStream output = new FileOutputStream(newPath + "/" + (temp.getName()).toString()); byte[] b = new byte[1024 * 5]; int len; while ( (len = input.read(b)) != -1) { output.write(b, 0, len); } output.flush(); output.close(); input.close(); } if(temp.isDirectory()){//如果是子文件夹 copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]); } } } catch (Exception e) { System.out.println("复制整个文件夹内容操作出错"); e.printStackTrace(); } } private static String mkdirs(String dir) { File file = new File(dir); if (!file.exists()) { file.mkdirs(); } return dir; }}
public class MainActivity extends Activity { CopyUtils copyUtils = new CopyUtils(); String oldPath = ""; String newPath = ""; @BindView(R.id.btn_copy_wj) Button btnCopyWj; @BindView(R.id.btn_copy_tp) Button btnCopyTp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); } @OnClick({R.id.btn_copy_wj, R.id.btn_copy_tp}) public void onClick(View view) { switch (view.getId()) { case R.id.btn_copy_wj://拷贝微信文件 oldPath = Environment.getExternalStorageDirectory() + "/tencent/MicroMsg/Download"; newPath = Environment.getExternalStorageDirectory() + "/MyFiles/Download"; copy(oldPath, newPath); break; case R.id.btn_copy_tp://拷贝微信图片 oldPath = Environment.getExternalStorageDirectory() + "/tencent/MicroMsg/WeiXin"; newPath = Environment.getExternalStorageDirectory() + "/MyFiles/WeiXin"; copy(oldPath, newPath); break; } } /** * 拷贝微信材料到我们的文件夹中 */ private void copy(String oldPath, String newPath) { copyUtils.copyFolder(oldPath, newPath); }}
布局文件activity_main.xml:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.honey.mytest.activity.MainActivity"> <Button android:text="拷贝微信的文件到我们的app目录下" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btn_copy_wj" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> <Button android:text="拷贝微信的图片到我们的APP目录下" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/btn_copy_wj" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:id="@+id/btn_copy_tp" /> art="true" android:id="@+id/btn_az" /></RelativeLayout>
0 0
- 创建文件夹 并 实现文件(夹)拷贝
- Qt创建文件夹并拷贝文件
- 创建文件夹、创建文件、拷贝文件
- Qt拷贝文件、文件夹、创建文件夹、删除文件夹操作
- 拷贝文件、文件夹、创建文件夹、删除文件夹操作
- 批处理遍历文件夹(包括子文件夹)中的文件并拷贝到目标文件
- QT 创建文件夹||选择一个文件(夹)||拷贝 删除文件或文件夹
- 遍历一个文件夹下的所有文件及文件夹,并进行拷贝(代码)
- EVC实现拷贝文件夹下所有文件
- xcopy 实现批处理拷贝文件或文件夹
- EVC实现拷贝文件夹下所有文件
- EVC实现拷贝文件夹下所有文件
- xcopy 实现批处理拷贝文件或文件夹
- xcopy 实现批处理拷贝文件或文件夹
- xcopy 实现批处理拷贝文件或文件夹
- LinuxC实现文件夹及文件拷贝
- LinuxC实现文件夹及其文件的拷贝
- Java实现文件拷贝(包括文件夹下的子文件夹和其中的文件)
- spring boot 中@Autowired注解无法自动注入的错误
- ubuntu下终端提示符颜色配置以及git分支配置
- 文件分离
- 关于做梦
- 如何通过会声会影制作视频影片
- 创建文件夹 并 实现文件(夹)拷贝
- 调试provider的代码时候,粗心的错误
- sql 多个排序选择,与它的坑
- windows server 时间同步
- 2017年阿里巴巴内推实习电话面试1
- EL表达式不起作用的解决方法
- Google Dapper-大规模分布式系统的基础跟踪设施
- L2-009. 抢红包
- 如何修改element.style内联样式;