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

项目已获得,今天.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" >

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

加入了文件,那么怎么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详细信息,它是该文件的操作,但是,有时真的用得到,当然。但不是一个文本文件。音乐文件也可以放在这里面,我们可以更多的尝试。

时间: 2024-10-13 21:45:33

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

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

最近在做个功能是将asset文件夹下的所有文件(包括子文件)全部拷贝出来到指定目录下.所用的方法无非是用AssetManager.但是这里有个问题是也要讲子文件夹和子文件都要拷贝出来.到网上Google了下,也到baidu搜索了下,发现了很多类似问题.但好像都有问题.显然只能做到将asset直接目录下的文件拷贝出来,但子文件夹拷贝不出来,而且,碰到文件夹,会抛异常.无奈自己只好动手写了个.如下: private void CopyAssets(String assetDir,String dir

exchange2016卸载报错安装程序无法卸载,因为mscorsvw(9476)具有打开的文件

开始卸载,程序中右键卸载提示无法卸载,因exchange进程被趋势杀毒软件占用,卸载趋势软件即可使用 setup /mode:uninstall /iacceptexchangeserverlicenseterms命令卸载完成卸载 原文地址:https://blog.51cto.com/yourcloud/2429040

VS2013创建Web应用程序MVC出现错误:系统找不到指定文件(异常来自 HRSULT:0x80070002)

查到博客园VS2013新建Web Application时报错Exception from HRESULT: 0x80070002 原来此异常是由于没有正确安装 NuGet Package Manager所导致的. 到下载页面http://visualstudiogallery.msdn.microsoft.com/4ec1526c-4a8c-4a84-b702-b21a8f5293ca进行下载,之后装上它就好了.

Python常用模块——文件复制模块shutil

Python常用模块--文件复制模块shutil shutil模块 高级的文件.文件夹.压缩包处理模块 shutil.copyfileobj(fsrc, fdst) 将文件内容拷贝到另一个文件中 import shutil shutil.copyfileobj(open('old.xml','r'), open('new.xml', 'w')) shutil.copyfile(src, dst) 拷贝文件 shutil.copyfile('f1.log', 'f2.log') #目标文件无需存在

字节流,字符流文件复制总结,包含9种方法,都是标准写法

package cn.itcast_03; import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStre

JAVA之文件复制 图片下载

用java打造属于自己的爬虫 网络上的图片太多 一个一个的保存实在太浪费时间 基于此 就使用了java做了一个小工具 功能是文件的复制 以及 网络上图片的下载 首先是IOUtlis类的创建 package hh; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputS

VS2013 系统找不到指定文件(异常来自 HRSULT:0x80070002)

VS2013创建Web应用程序MVC出现错误:系统找不到指定文件(异常来自 HRSULT:0x80070002) 查到博客园VS2013新建Web Application时报错Exception from HRESULT: 0x80070002 原来此异常是由于没有正确安装 NuGet Package Manager所导致的. 到下载页面http://visualstudiogallery.msdn.microsoft.com/4ec1526c-4a8c-4a84-b702-b21a8f5293

MVC出现错误:系统找不到指定文件(异常来自 HRSULT:0x80070002)

vs2013创建Web应用程序MVC出现错误:系统找不到指定文件(异常来自 HRSULT:0x80070002) 查到博客园VS2013新建Web Application时报错Exception from HRESULT: 0x80070002 原来此异常是由于没有正确安装 NuGet Package Manager所导致的. 到下载页面http://visualstudiogallery.msdn.microsoft.com/4ec1526c-4a8c-4a84-b702-b21a8f5293

VC 获取指定文件夹路径的方法小结

VC获取指定文件夹路径 flyfish  2010-3-5 一 使用Shell函数 1 获取应用程序的安装路径 TCHAR buf[_MAX_PATH];SHGetSpecialFolderPath(NULL,buf,CSIDL_PROGRAM_FILES,NULL);AfxMessageBox(buf); 2 获取应用程序数据路径的文件夹 TCHAR bufApplicateData[_MAX_PATH];SHGetSpecialFolderPath(NULL,bufApplicateData