unity3d是否能在android的sdcard目录unity 创建目录文件和文件夹

android创建文件夹和文件的一些经验教训 - 流光映雪 - 博客园
这几天做一个功能需要在手机上创建一个文件夹,然后往里面存储一些文件,首先得考虑用户有没有sdcard,如果有就在sdcard上创建一个指定的文件夹,如果没有则在你的工程所在的目录&/data/data/你的包名&下创建文件夹。用到的方法是:
首先判断sdcard是否插入
String status = Environment.getExternalStorageState();&&if (status.equals(Environment.MEDIA_MOUNTED)) {&&&&&} else {&&&&&}
然后根据是否插入状态指定目录
if (SdcardHelper.isHasSdcard()) {&&&sDir = SDCARD_DIR;&&} else {&&&sDir = NOSDCARD_DIR;&&}
然后是创建文件夹
&&File destDir = new File(sDir);&&if (!destDir.exists()) {&&&destDir.mkdirs();&&}
问题是:刚开始我的文件夹的目录是按照windows方式的例如"\sdcard\tempdir"结果运行后也不报错但是怎么也创建不了文件夹,后面想到应该是按linux格式的目录,改为"/sdcard/tempdir"后即可成功创建。因为之前创建文件都是按照windows方式例如"\sdcard\test.txt"调用new File("();创建而且可以成功,所以目录就没考虑。经验证创建文件夹使用windows或者linux的目录结构都可以,而目录的话必须用linux的格式。
注:如果是1.6版本的话,需要注册sdcard权限才能正常建立文件夹及写入文件. 2.2以上不需要
&&!--往sdcard中写入数据的权限&--&&uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"&&/uses-permission&&&!--在sdcard中创建/删除文件的权限&--&&uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"&&/uses-permission&温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(4214)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'unity3d android 下加载路径',
blogAbstract:'1、unity3d 导出eclipse项目2、把资源放到&assets 文件里(eclipse 项目)3、发布项目4、安装',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:6,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}unity3d项目文件目录发布后,对应的ios/android应用目录
unity3d项目文件目录发布后,对应的ios/android应用目录
Unity3d的Resource、AssetBundle与手游动态更新的报告,在这里分享一下,希望能够对各位用Unity的朋友有些许帮助。目录:1.Unity的资源数据加载2.Resource、StreamingAsset文件夹,安装后的路径(Android,iOS)3.Unity在打包和安装的时候怎么处理persistentDataPath4.Unity的Android和IOS上相关的目录结构5.Unity常用目录对应的Android && iOS平台地址用妹子分割一下目录与主体。。。1.Unity的资源数据加载 - Resources、AssetBundle、StreamingAsset、PersistentDataPathResources&- 打包集成到.asset文件里面及引用的资源as后se一个文件里面面- 主线程加载- 想要动态更新资源则不考虑AssetBundle&- unity定义的二进制文件类型- 用WWW类下载StreamingAssets- 可读不可写- 内容限制 - 无&- 只能用WWW类下载PersistentDataPath目录下- 可读可写- 内容限制 - 无- 清除手机缓存文件会一并清理这里的东西- 随意弄,可作为本地目录让WWW下载、也可以自己用FileInfo乱整2.Resource、StreamingAsset文件夹,安装后的路径(Android,iOS)StreamingAsset&- iOS : Application.dataPath + /Raw- Android : jar:file:// + Application.dataPath + !/assets/Resources- 打包成一个Asset文件3.Unity在打包和安装的时候怎么处理PersistentDataPath- PersistentDataPath- 就是com.**.**/files 的路径而已&(打过APK包的应该都明白吧)4.Unity的Android和IOS上相关的目录结构Android:- assets 游戏内容相关的都在这里了- lib JNI相关的东西- META-INF Java包跟rar包的区别- res 图标之类的- AndroidManifest.xml Android配置文件- classes.dex Java虚拟机runtime的东西- resources.arsc Java编译后的二进制文件IOS:- level0/level1… Scene- sharedassets0/shaedassets1/… Scene相关的东西- Managed 脚本编译后的dll- resources.assets Resources里面的东西- Raw StreamingAssets里面的东西5. Unity常用目录对应的Android && iOS平台地址IOS:Application.dataPath : Application/xxxxx/xxx.app/DataApplication.streamingAssetsPath : Application/xxxxx/xxx.app/Data/RawApplication.persistentDataPath : Application/xxxxx/DocumentsApplication.temporaryCachePath : Application/xxxxx/Library/CachesAndroid:Application.dataPath : /data/app/xxx.xxx.xxx.apkApplication.streamingAssetsPath : jar:file:///data/app/xxx.xxx.xxx.apk/!/assetsApplication.persistentDataPath : /data/data/xxx.xxx.xxx/filesApplication.temporaryCachePath : /data/data/xxx.xxx.xxx/cache
发表评论:
TA的最新馆藏[转]&在电脑上用android模拟器时,那些像sdcard的文件夹在电脑的哪里??谢谢!!!_百度知道问一下,4.0不能在SD卡下创建目录吗?为什么我权限有了,还是无法创建然后报错?是权限不对吗?报错如下:
08-24 16:51:42.045: W/System.err(3144): java.io.IOException: open failed: EACCES (Permission denied)08-24 16:51:42.045: W/System.err(3144):
at java.io.File.createNewFile(File.java:940)08-24 16:51:42.045: W/System.err(3144):
at qinXianYuZou.Qian.Shuju.chuangjianku_xie(Shuju.java:166)08-24 16:51:42.045: W/System.err(3144):
at qinXianYuZou.Qian.QianMingActivity$click_签名按钮.onClick(QianMingActivity.java:114)08-24 16:51:42.045: W/System.err(3144):
at android.view.View.performClick(View.java:3511)08-24 16:51:42.055: W/System.err(3144):
at android.view.View$PerformClick.run(View.java:14109)08-24 16:51:42.055: W/System.err(3144):
at android.os.Handler.handleCallback(Handler.java:605)08-24 16:51:42.055: W/System.err(3144):
at android.os.Handler.dispatchMessage(Handler.java:92)08-24 16:51:42.055: W/System.err(3144):
at android.os.Looper.loop(Looper.java:137)08-24 16:51:42.055: W/System.err(3144):
at android.app.ActivityThread.main(ActivityThread.java:4424)08-24 16:51:42.065: W/System.err(3144):
at java.lang.reflect.Method.invokeNative(Native Method)08-24 16:51:42.065: W/System.err(3144):
at java.lang.reflect.Method.invoke(Method.java:511)08-24 16:51:42.065: W/System.err(3144):
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)08-24 16:51:42.065: W/System.err(3144):
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)08-24 16:51:42.065: W/System.err(3144):
at dalvik.system.NativeStart.main(Native Method)08-24 16:51:42.075: W/System.err(3144): Caused by: libcore.io.ErrnoException: open failed: EACCES (Permission denied)08-24 16:51:42.075: W/System.err(3144):
at libcore.io.Posix.open(Native Method)08-24 16:51:42.075: W/System.err(3144):
at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)08-24 16:51:42.075: W/System.err(3144):
at java.io.File.createNewFile(File.java:933)08-24 16:51:42.075: W/System.err(3144):
... 13 more
我添加的权限如下:
&uses-permission android:name="android.permission.READ_PHONE_STATE"/&&uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/&&uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/&
我创建目录的代码如下:
File path = new File(Environment.getExternalStorageDirectory() + "/sys");// 创建目录
File file = new File(Environment.getExternalStorageDirectory()
+ "/sys/auci.db");// 创建文件
if (!path.exists())
{// 目录存在返回false
path.mkdirs();// 创建一个目录
if (!file.exists())
{// 文件存在返回false
file.createNewFile();// 创建文件
catch (IOException e)
e.printStackTrace();
file.delete();
file.createNewFile();
catch (IOException e)
e.printStackTrace();
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(file, null);
该问题被发起重新开启投票
投票剩余时间:
之前被关闭原因:
该问题被发起删除投票
投票剩余时间:
距离悬赏到期还有:
参与关闭投票者:
关闭原因:
该问题已经被锁定
锁定原因:()
保护原因:避免来自新用户不合宜或无意义的致谢、跟帖答案。
该问题已成功删除,仅对您可见,其他人不能够查看。
上面的代码没有啥问题,是不是兼容存在问题,在其他的sdk,手机上测试可以吗?手机确定没有mount的状态
可以用下面的代码调试下:
public void writeToExternalStoragePublic(String filename, int content) {
String packageName = this.getPackageName();
String path = Environment.getExternalStorageDirectory().getAbsolutePath()+ "/Android/data/" + packageName + "/files/";
if (isExternalStorageAvailable() && !isExternalStorageReadOnly()) {
boolean exists = (new File(path)).exists();
if (!exists) {
new File(path).mkdirs();
// Open output stream
FileOutputStream fOut = new FileOutputStream(path + filename,true);
// write integers as separated ascii's
fOut.write((Integer.valueOf(content).toString() + " ").getBytes());
fOut.write((Integer.valueOf(content).toString() + " ").getBytes());
// Close output stream
fOut.flush();
fOut.close();
} catch (IOException e) {
e.printStackTrace();
当应用程序是system时,不能访问SDCARD
我怎么觉得那个path.mkdirs()应该是path.mkdir(),不妨试一下
不是您所需,查看更多相关问题与答案
德问是一个专业的编程问答社区,请
后再提交答案
关注该问题的人
共被浏览 (17260) 次}

我要回帖

更多关于 mac 根目录创建文件夹 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信