开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

问答求助

关注:489

当前位置:游戏蛮牛 技术专区 问答求助

_____________________________________________________________________________________________________________
问答求助版块规则:

  1、问题尽量描述清楚
      2、代码要放在代码块里
      3、附件最好放到云盘,然后把链接放到TXT文档里,上传TXT文档。【最好没有附件,你懂得】
      4、本版块回复不得无意义,如:顶、呵呵、不错......以及擦边!【真的会扣分的哦】严重者,封IP!
      5、问题得到解决,请选择最佳答案。
      6、若问题是你自己解决了,可以联系管理员,返还蛮牛币,写下你的答案,另有蛮牛币奖赏。
_____________________________________________________________________________________________________________
查看: 966|回复: 16

[技术讨论] 安卓读取XML配置文件的路径是怎么写的

[复制链接]  [移动端链接]
5熟悉之中
671/1000
排名
12644
昨日变化
8

23

主题

264

帖子

671

积分

Rank: 5Rank: 5

UID
74942
好友
1
蛮牛币
452
威望
0
注册时间
2015-2-15
在线时间
356 小时
最后登录
2017-12-5
发表于 2016-11-17 10:45:06 | 显示全部楼层 |阅读模式
100蛮牛币
如题,百度了一堆,没一个能用的,不知道是什么问题.


回复

使用道具 举报

7日久生情
1699/5000
排名
1085
昨日变化
2

1

主题

114

帖子

1699

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
108793
好友
0
蛮牛币
3558
威望
0
注册时间
2015-6-16
在线时间
718 小时
最后登录
2017-12-10
发表于 2016-11-17 11:39:11 | 显示全部楼层
放在streamingAssetsPath文件夹下,路径=Application.streamingAssetsPath+"/xxx.xml";

回复

使用道具 举报

5熟悉之中
671/1000
排名
12644
昨日变化
8

23

主题

264

帖子

671

积分

Rank: 5Rank: 5

UID
74942
好友
1
蛮牛币
452
威望
0
注册时间
2015-2-15
在线时间
356 小时
最后登录
2017-12-5
 楼主| 发表于 2016-11-17 13:49:48 | 显示全部楼层
0度单舞 发表于 2016-11-17 11:39
放在streamingAssetsPath文件夹下,路径=Application.streamingAssetsPath+"/xxx.xml";

不行哦,电脑上没问题,手机上读取不到这个文件
[发帖际遇]: 善良的农民 乐于助人,奖励 1 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

5熟悉之中
671/1000
排名
12644
昨日变化
8

23

主题

264

帖子

671

积分

Rank: 5Rank: 5

UID
74942
好友
1
蛮牛币
452
威望
0
注册时间
2015-2-15
在线时间
356 小时
最后登录
2017-12-5
 楼主| 发表于 2016-11-17 14:07:36 | 显示全部楼层
看你们都好轻松的样子,难道是我的手机有问题嘛

回复

使用道具 举报

排名
21371
昨日变化
9

3

主题

11

帖子

79

积分

Rank: 2Rank: 2

UID
112232
好友
0
蛮牛币
60
威望
0
注册时间
2015-7-6
在线时间
49 小时
最后登录
2016-12-26
发表于 2016-11-17 14:15:25 | 显示全部楼层
把文件放在streamingAssets文件夹,Android读取路径用Application.dataPath+ @"/assets/ + "你的文件名" 试试
[发帖际遇]: Link3 乐于助人,奖励 2 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

5熟悉之中
671/1000
排名
12644
昨日变化
8

23

主题

264

帖子

671

积分

Rank: 5Rank: 5

UID
74942
好友
1
蛮牛币
452
威望
0
注册时间
2015-2-15
在线时间
356 小时
最后登录
2017-12-5
 楼主| 发表于 2016-11-17 15:10:11 | 显示全部楼层
Link3 发表于 2016-11-17 14:15
把文件放在streamingAssets文件夹,Android读取路径用Application.dataPath+ @"/assets/ + "你的文件名" 试 ...

不行啊,这样写在电脑都过不了

回复

使用道具 举报

5熟悉之中
599/1000
排名
3598
昨日变化
3

1

主题

24

帖子

599

积分

Rank: 5Rank: 5

UID
104826
好友
0
蛮牛币
874
威望
0
注册时间
2015-6-1
在线时间
250 小时
最后登录
2017-7-10
发表于 2016-11-17 16:05:55 | 显示全部楼层
ios  和  Android 都能用 @"" + Application.persistentDataPath + "/文件名"

回复

使用道具 举报

5熟悉之中
671/1000
排名
12644
昨日变化
8

23

主题

264

帖子

671

积分

Rank: 5Rank: 5

UID
74942
好友
1
蛮牛币
452
威望
0
注册时间
2015-2-15
在线时间
356 小时
最后登录
2017-12-5
 楼主| 发表于 2016-11-17 16:10:58 | 显示全部楼层
D:\QQ截图20161117161010.png
[发帖际遇]: 善良的农民 发帖时在路边捡到 1 蛮牛币,偷偷放进了口袋. 幸运榜 / 衰神榜

回复

使用道具 举报

5熟悉之中
671/1000
排名
12644
昨日变化
8

23

主题

264

帖子

671

积分

Rank: 5Rank: 5

UID
74942
好友
1
蛮牛币
452
威望
0
注册时间
2015-2-15
在线时间
356 小时
最后登录
2017-12-5
 楼主| 发表于 2016-11-17 16:12:35 | 显示全部楼层
WY206 发表于 2016-11-17 16:05
ios  和  Android 都能用 @"" + Application.persistentDataPath + "/文件名"

        string path = "@" + Application.persistentDataPath + "XMLData.xml";
是这样子写么,一会儿我发布到手机上试试

回复

使用道具 举报

5熟悉之中
599/1000
排名
3598
昨日变化
3

1

主题

24

帖子

599

积分

Rank: 5Rank: 5

UID
104826
好友
0
蛮牛币
874
威望
0
注册时间
2015-6-1
在线时间
250 小时
最后登录
2017-7-10
发表于 2016-11-17 16:15:08 | 显示全部楼层
善良的农民 发表于 2016-11-17 16:12
string path = "@" + Application.persistentDataPath + "XMLData.xml";
是这样子写么,一会儿我 ...

@"" + Application.persistentDataPath + "/XMLData.xml"   是这样  @在前面   还有文件名前有/
[发帖际遇]: WY206 乐于助人,奖励 1 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

5熟悉之中
671/1000
排名
12644
昨日变化
8

23

主题

264

帖子

671

积分

Rank: 5Rank: 5

UID
74942
好友
1
蛮牛币
452
威望
0
注册时间
2015-2-15
在线时间
356 小时
最后登录
2017-12-5
 楼主| 发表于 2016-11-17 16:18:11 | 显示全部楼层
WY206 发表于 2016-11-17 16:15
@"" + Application.persistentDataPath + "/XMLData.xml"   是这样  @在前面   还有文件名前有/ ...

@后边的双引号是空?
[发帖际遇]: 善良的农民 发帖时在路边捡到 2 蛮牛币,偷偷放进了口袋. 幸运榜 / 衰神榜

回复

使用道具 举报

6蛮牛粉丝
1186/1500
排名
1299
昨日变化

1

主题

67

帖子

1186

积分

Rank: 6Rank: 6Rank: 6

UID
57877
好友
0
蛮牛币
2660
威望
0
注册时间
2014-11-26
在线时间
363 小时
最后登录
2017-12-2
发表于 2016-11-17 17:03:00 | 显示全部楼层
/storage/emulated/0/***.xml 直接读取到手机的根目录,Application.persistentDataPath可以读取到工程文件中的Application.streamingAssetsPath路径,不过记得将PlayerSetting中的 Write Access选择External(SDCard)   破费

回复

使用道具 举报

6蛮牛粉丝
1186/1500
排名
1299
昨日变化

1

主题

67

帖子

1186

积分

Rank: 6Rank: 6Rank: 6

UID
57877
好友
0
蛮牛币
2660
威望
0
注册时间
2014-11-26
在线时间
363 小时
最后登录
2017-12-2
发表于 2016-11-17 17:05:49 | 显示全部楼层
前面最好是“”file:/// ”三个斜杠

回复

使用道具 举报

排名
233
昨日变化

5

主题

581

帖子

3313

积分

Rank: 11Rank: 11Rank: 11Rank: 11Rank: 11

UID
31708
好友
5
蛮牛币
7112
威望
0
注册时间
2014-6-28
在线时间
988 小时
最后登录
2017-12-11

活力之星

QQ
发表于 2016-11-18 01:43:03 | 显示全部楼层
xml原始文件放到StreamingAssets文件加下,读取要用windows:path = Application.dataPath + "/StreamingAssets/" + filename;
IOS: path = Application.dataPath + "/Raw/" + filename;
Android:path = "jar:file://" + Application .dataPath + "!/assets/" + filename;
WWW www = new WWW(path);
yield return www;
string context = www.text;

然后把这个文件写到Application.persistentDataPath路径下,然后就可以用file类操作了~

回复

使用道具 举报

5熟悉之中
659/1000
排名
6041
昨日变化
4

11

主题

135

帖子

659

积分

Rank: 5Rank: 5

UID
152229
好友
0
蛮牛币
2545
威望
0
注册时间
2016-6-16
在线时间
297 小时
最后登录
2017-12-10
发表于 2016-11-18 09:19:35 | 显示全部楼层

首先:要先加载文件并且写入安卓目录
[C#] 纯文本查看 复制代码
    public string ReadFilePath()
    {
#if UNITY_EDITOR
        filepath = Application.dataPath + "/StreamingAssets/";
#elif UNITY_IPHONE
        filepath = Application.dataPath +"/Raw/";
#elif UNITY_ANDROID
        filepath = "jar:file://" + Application.dataPath + "!/assets/";
#else
        filepath = Application.dataPath + "/StreamingAssets/";
#endif
        return filepath;
    }

    public string ReadWriterFilePath()
    {
#if UNITY_EDITOR
        filepath = Application.dataPath + "/StreamingAssets/";
#elif UNITY_IPHONE
            filepath = Application.persistentDataPath + "/";
#elif UNITY_ANDROID
            filepath = Application.persistentDataPath + "/";
#else
            filepath = string.Empty;
#endif
        return filepath;
    }


调用:
[C#] 纯文本查看 复制代码
private string Data = @"Test.xml";
private string DataDefault = "Default.xml";
private string path;
private string strFilePath;

    void Start()
    {
        path = ReadWriterFilePath();

        if (Application.platform == RuntimePlatform.Android)
            strFilePath = filePath.ReadFilePath();
        else
            strFilePath = "file:///" + filePath.ReadFilePath();

        if (!File.Exists(path + Data))
        {
            StartCoroutine(WriteDefaultData());
        }
        else
        {
            StartCoroutine(ReadGameData());
        }
    }

    public IEnumerator WriteDefaultData()
    {        
        WWW www = new WWW(strFilePath + DataDefault);
        yield return www;
        StreamWriter strWriter = new StreamWriter(path + gameData, false,Encoding.Default);
        strWriter.Write(www.text);
        strWriter.Flush();
        strWriter.Close();
        strWriter.Dispose();
    }

    public IEnumerator ReadData()
    {
        WWW www = new WWW(strFilePath + fileName);
        yield return www;
        string strData = www.text;
    }




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表