项目已获得,今天.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. 很多Python新手教程

    重要提示 这不是一个教程新手程序员准备,你担任很快编程,或者没有使用1至2程序设计语言,请移步!这是一些编程经验准备.它最出名Java或C,理解命令行,Shell等待.简而言之,面向老鸟的,让老鸟高速 ...

  2. NLB+Application Request Route 网路负载均衡

    NLB网路负载均衡管理器详解   序言 在上一篇配置iis负载均衡中我们使用啦微软的ARR,我在那篇文章也中提到了网站的高可用性,但是ARR只能做请求入口的消息分发服务,这样如果我们的消息分发服务器给 ...

  3. Docker部署JavaWeb项目实战(转)

    摘要:本文主要讲了如何在Ubuntu14.04 64位系统下来创建一个运行Java web应用程序的Docker容器. 一.下载镜像.启动容器 1.下载镜像 先查看镜像 docker images 记 ...

  4. 《Java程序书面采访猿收藏》之 instanceof的作用是什么

    instanceof它是Java二元运算语言,它的作用是推断对象变量引用被指向的类型是一类(或接口.抽象类.父亲)示例.即,对象是否是它的一个实例离开它的类的权.返回boolean数据类型. 常见的使 ...

  5. 【翻译自mos文章】回收 asm磁盘空间的方法

    回收 asm磁盘空间的方法 參考原文: How To Reclaim Asm Disk Space? (Doc ID 351866.1) 适用于: Oracle Database - Enterpri ...

  6. BZOJ-2115-Xor-WC2011

    叙述性说明 分析 我把文库里的粘了过来. 仅仅知道点1到点N的一条路径和图中若干个环.就能通过异或,表示成全部路径.那么.须要多少环才干保证必然能表示成全部路径呢?事实上.并不须要非常多, 由于一些环 ...

  7. iOS开发那些事-iOS6苹果地图有用开发

    在iOS 6之后,不再使用谷歌地图了,而是使用苹果自己的地图,可是API编程接口没有太大的变化.开发者不须要再学习非常多新东西就能开发地图应用,这是负责任的做法.因此本节介绍的内容也相同适用于iOS5 ...

  8. [WPF]静态资源(StaticResource)和动态资源(DynamicResource)

    一.文章概述 本演示介绍WPF基本采用静态和动态的资源.而且两者都做一个简单的比较. 静态资源(StaticResource)指的是在程序加载内存时对资源的一次性使用,之后就不再訪问这个资源了:动态资 ...

  9. DSR on Openstack POC

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFvbGlwaW5nNDU1bWxwNDU1/font/5a6L5L2T/fontsize/400/fil ...

  10. NTVS:把Visual Studio变成Node.js IDE 的工具

    NTVS(Node.js Tools for Visual Studio) 运行于VS2012或者VS2013.一些node.js的爱好者已经从PTVS(Python Tools for Visual ...