项目已获得,今天.apk文件以获得另一个非调试手机,发现一个问题。

由于涂料。所以绘图数据的点存储在一个.txt文字档。把它用usb传到指定目录下的,可是明显不科学,由于用户下载了你的.apk文件,你却告诉他,还要把这个文本文件复制到指定的目录下。所以,我就要解决问题。就是把文本文件打包在apk文件里,安装.apk时就让创建一个程序目录。然后把文本文件复制到这个目录目录里,用户执行程序,就能够画图,不用再让他拷贝一份画图的点的坐标的数据。同理,事实上我这里还有设计轨廓的数据和标准轨廓的数据也是要初始时就要存在的。

这里就给了一个方法,用来解决问题。

首先。你要把执行必须的文件命名好,仅仅能是a-z,0-9这36个字符(它是这么提醒我的)组成的文件名称,然后在你的project下新建一个目录raw,一般来说这个目录是没有的,由于这个目录下的文件是不会经过压缩的,而是直接复制到apk文件里,最后把你的文件加入到raw目录中,这样就做好了第一步。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamlzaHVjYWk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

类似如上图的创建目录。加入文件就能够了。

加入了文件,那么怎么copy这些文件到指定文件夹下呢?这里有几点,事实上都是文件操作那一块的知识点。第一,推断指定的文件文件夹和文件是否存在,不存在就要先创建。第二。引用raw中的文件;第三。把raw中文件copy到创建的文件里,或者说是raw中文件写到输出流。再把输入流写到手机上创建的文件里。

我这里简单的写了一个函数,函数前两个參数,一个是写入到手机上的文件的文件夹路径,一个是新创建的文件名称字。第三个參数是最重要的,也就是raw中文件是以gen文件夹下的R.java中的id来索引的,就像我们的界面里面的button在程序中引用也是通过id来索引的。这第三个參数是一个int型,就是这个文件的id。R.java中是int型,大家能够看看。这个函数代码例如以下:

private void copyfile(String fileDirPath,String fileName,int id) {
String filePath = fileDirPath + "/" + fileName;// 文件路径
try {
File dir = new File(fileDirPath);// 文件夹路径
if (!dir.exists()) {// 假设不存在,则创建路径名
dir.mkdirs();
}
// 文件夹存在,则将apk中raw文件夹中的须要的文档拷贝到该文件夹下
File file = new File(filePath);
if (!file.exists()) {// 文件不存在
InputStream is = getResources().openRawResource(
id);// 通过raw得到数据资源
FileOutputStream fs = new FileOutputStream(file);
byte[] buffer = new byte[1024];
int count = 0;// 循环写出
while ((count = is.read(buffer)) > 0) {
fs.write(buffer, 0, count);
}
fs.close();// 关闭流
is.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}

我们能够在第一个activity的oncreate方法中调运这个函数。这样安装.apk文件后,第一次打开程序。就创建了指定文件,这个文件是从raw中拷贝过去的。

createFile("/sdcard/test/data","TB60.txt",R.raw.tb60);
createFile("/sdcard/test/guikuo","设计轨廓.txt",R.raw.sjgk);
createFile("/sdcard/test/guikuo","标准轨廓.txt",R.raw.bzgk);

上面的參数都是自己能够改动的。只是,你安装之后,假设没有执行程序,是不会找到这些目录的。由于这是在第一执行是才创建。接下来执行,它的结论是文件已经存在,无论该交易尚未完成。

其实,这是一个很easy详细信息,它是该文件的操作,但是,有时真的用得到,当然。但不是一个文本文件。音乐文件也可以放在这里面,我们可以更多的尝试。

apk当安装程序将文件复制到手机自带的指定文件夹的更多相关文章

  1. boost_1_34_1在c++builder6编译(把所有dll文件复制到windows系统目录,所以lib文件复制到bcb6\lib目录)

    boost_1_34_1.zip boost 正则表达式 bcb6编译boost_1_34 有个项目要对大量的文本信息进行分析,以前的方法是自己写函数然后进行分析.现在发现一个正则表达式的处理方法,其 ...

  2. Android程序函数 将assets文件夹下的文件复制到手机的sd卡中(包括子文件夹)

    最近在做个功能是将asset文件夹下的所有文件(包括子文件)全部拷贝出来到指定目录下.所用的方法无非是用AssetManager.但是这里 有个问题是也要讲子文件夹和子文件都要拷贝出来.到网上Goog ...

  3. 深层目录文件复制,C# 递归,录音录像图片文件过多,用于测试程序

    /// <summary> /// 录音录像图片文件过多只复制目录的前几个文件,用于测试程序 /// d:\file/images/2019-10/01/01/xxxxx.jpg(前几个文 ...

  4. 【转载】win7搜索文件怎么搜索文件名中带圆括号的文件

    System.FileName:~=“(” 这样就行. 括号上加个引号 ~= 是包含的意思, ~< 是以什么为开头, = 是以什么为名, ~! 是不包含 来自: http://www.lao8. ...

  5. Wix打包系列(一)如何使用wix制作安装程序

    原文:Wix打包系列(一)如何使用wix制作安装程序 最近由于项目需要,需要给客户制作安装程序,一开始使用vs2005自带的打包工程来打包,但用了一段时间发现vs打包太死板,而且使用起来问题很多.收费 ...

  6. 使用LabVIEW如何生成应用程序(exe)和安装程序(installer)

    主要软件:   LabVIEW Development Systems>>LabVIEW Professional Development System主要软件版本:   2012主要软件 ...

  7. chromium的安装程序

    转自:http://www.xue163.com/182/6/1822338.html#pinglun 这篇文章主要简单讲解chromium的安装程序mini_installer 在编译mini_in ...

  8. 安装程序工具 (Installutil.exe)22

    网址:https://msdn.microsoft.com/zh-cn/library/50614e95(VS.80).aspx  安装程序工具 (Installutil.exe) .NET Fram ...

  9. 安装程序工具 (Installutil.exe)

    网址:https://msdn.microsoft.com/zh-cn/library/50614e95(VS.80).aspx  安装程序工具 (Installutil.exe) .NET Fram ...

随机推荐

  1. UML相关工具一览

    http://www.cnblogs.com/chehaoj/p/3478003.html TopCoder UML Tool 1.2.6 TopCoder, Inc http://www.topco ...

  2. Sliverlight之 控件模板

    1,控件模板 (见Project22) (1) 什么是控件模板,查中文帮助 说明:当控件自身属性已经无法达到你对控件外观设置的要求时(比如将按钮作成圆形),此时控件模板就发挥了很大的作用 使用: &l ...

  3. Linux下PS命令详解 (转)

    要对系统中进程进行监测控制,查看状态,内存,CPU的使用情况,使用命令:/bin/ps (1)ps :是显示瞬间进程的状态,并不动态连续: (2)top:如果想对进程运行时间监控,应该用 top 命令 ...

  4. Directx11学习笔记【二十】 使用DirectX Tool Kit加载mesh

    本文由zhangbaochong原创,转载请注明出处:http://www.cnblogs.com/zhangbaochong/p/5788482.html 现在directx已经不再支持.x文件了, ...

  5. spring改版官网下载jar包, 源代码和文档

    从网上找了一些方法,现在都整理了一下,有简单粗暴的,也有百转回肠的(详细,直接从官网一步一步的进入下载页),希望大家根据自己的喜好可以找到的真爱. 方法一:(简单粗暴直接) http://repo.s ...

  6. RH033读书笔记(3)-Lab 4 Browsing the Filesystem

    Lab 4 Browsing the Filesystem Sequence 1: Directory and File Organization 1. Log in as user student ...

  7. 解决Nginx的connect() to 127.0.0.1:8080 failed (13: Permission denied) while connect

    在进行Nginx+Tomcat 负载均衡的时候遇到了这个权限问题,在error.log日志中.我们能够看到例如以下: connect() to 127.0.0.1:8080 failed (13: P ...

  8. GotoTest

    循环标签跳出循环 public class GotoTest { public static void main(String[] args) { int[][] array={ {1,20,3}, ...

  9. 图片切割工具---产生多个div切割图片 采用for和一的二维阵列设置背景位置

    照片库 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb21vZ2c=/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...

  10. Redis数据结构

    Redis数据结构 Redis数据结构详解(一)   前言 Redis和Memcached最大的区别,Redis 除啦支持数据持久化之外,还支持更多的数据类型而不仅仅是简单key-value结构的数据 ...