путь к текстовому файлу для записи и чтения
Добавлено:
27 сен 2021, 19:04
labinzevvAlex
Всем привет! Недавно начал разбираться со сборкой под андроид. Ну и как всегда подводные камни объясните кто нить, как правильно пользоваться
этой строкой string dictEn = "jar:file://" + Application.dataPath + "!/assets/dictionaryEn.txt"; Нигде подробной инструкции нет, только эта строка,
а дальше типа сам догоняй... Куда помещать файл dictionaryEn.txt в самой юнити. Что за восклицательный знак перед assets. Нужен какой либо доп. код для
этой строки. (Ещё много попадается класc WWW но он типа уже устаревший, да и как я понял это для внешних ресурсов (с сервера), а мне нужно чтение и запись локальных.txt на устройстве андроид). Мож где и фигни нагородил, только начинаю разбираться в теме, если что сильно не пинайте. А по возможности помогите разобраться. Заранее спасибо!)
Re: путь к текстовому файлу для записи и чтения
Добавлено:
27 сен 2021, 21:01
labinzevvAlex
1max1 писал(а):https://docs.unity3d.com/Manual/StreamingAssets.html
Да был я там... Не находит путь к файлам, по всякому пробовал.
По этому и спрашиваю jar:file://" + Application.dataPath + "!/assets" что с этой строкой делать? Куда файлы в проекте ложить? в папку !/assets?
или куда?
Re: путь к текстовому файлу для записи и чтения
Добавлено:
28 сен 2021, 01:25
1max1
Если ты хочешь загружать их со стрим ассетс, то ложить надо именно в папку StreamingAssets. И загрузка обычно происходит через WebRequest (или старый WWW)
http://answers.unity.com/answers/1347128/view.html
Re: путь к текстовому файлу для записи и чтения
Добавлено:
28 сен 2021, 19:29
labinzevvAlex
Спасибо за помощь)
Но пока глухо...
Не поможешь понять, что не так с кодом?
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
public class dictionary : MonoBehaviour
{
string fileLocation_queryTop;
string assetPath;
string _query_TOP;
string filePath;
private IEnumerator LoadFile()
{
filePath = Path.Combine(Application.streamingAssetsPath, "dictionaryEn.txt");
if (filePath.Contains("://"))
{
WWW www = new WWW(filePath);
yield return www;
if (string.IsNullOrEmpty(www.error))
{
_query_TOP = www.text;
}
}
else
{
_query_TOP = File.ReadAllText(filePath);
}
}
void Update()
{
fileLocation_queryTop = "/Streaming Assets/dictionaryEn.txt";
assetPath = "jar:file://" + Application.dataPath + "!/assets";
_query_TOP = File.ReadAllText(assetPath + fileLocation_queryTop);
LoadFile();
engWordTextOut.text = _query_TOP;
/////////////
}
}
android не находит путь к dictionaryEn.txt Пробовал и в Start, то же самое
Где ошибка, может порядок не тот или в чём может быть дело, вроде всё по мануалу...
Re: путь к текстовому файлу для записи и чтения
Добавлено:
28 сен 2021, 20:28
1max1
Папка должна называться StreamingAssets, без пробелов, и лежать должна в папке Assets.
Используется csharp
public class Test : MonoBehaviour
{
string result;
void Start()
{
StartCoroutine(c_LoadText("file.txt"));
}
void Update()
{
}
IEnumerator c_LoadText(string fileName)
{
var path = Application.streamingAssetsPath + "/" + fileName;
if (Application.isMobilePlatform)
{
var webRequest = UnityWebRequest.Get(path);
yield return webRequest.SendWebRequest();
result = webRequest.downloadHandler.text;
print(result);
}
else
{
result = File.ReadAllText(path);
print(result);
}
}
}
Re: путь к текстовому файлу для записи и чтения
Добавлено:
28 сен 2021, 21:01
labinzevvAlex
1max1 писал(а):Папка должна называться StreamingAssets, без пробелов, и лежать должна в папке Assets.
Используется csharp
public class Test : MonoBehaviour
{
string result;
void Start()
{
StartCoroutine(c_LoadText("file.txt"));
}
void Update()
{
}
IEnumerator c_LoadText(string fileName)
{
var path = Application.streamingAssetsPath + "/" + fileName;
if (Application.isMobilePlatform)
{
var webRequest = UnityWebRequest.Get(path);
yield return webRequest.SendWebRequest();
result = webRequest.downloadHandler.text;
print(result);
}
else
{
result = File.ReadAllText(path);
print(result);
}
}
}
Спасибо ОГРОМНОЕ! Выручил!