c# - 无效的目录斜杠
问题描述
我现在遇到了一个奇怪的问题。我正在尝试从 StreamingAssets 加载本地化 json 文件。我正在使用 Path.Combine 将 StreamingAssetsPath 和 Path 组合在一起以形成完整路径。Path 的值为 en-us。但由于某种原因,Path.Combine 在连接字符串时会抛出一个 \ ,所以我的路径无效。如果我将 Path 的值更改为 /en-US,那么它将完全切断 Application.StreamingAssetsPath 部分。
Path = en-US 的 Debug.Log 结果:
C:/Users/bluem/Documents/Fishtale/Assets/StreamingAssets\en-US
Path = /en-US 的 Debug.Log 结果
/zh-CN
我只是无法对这种奇怪的事情产生头绪或故事,哈哈。
public void LoadLocalizedText()
{
localizedText = new Dictionary<string, string>();
string filePath = Path.Combine(Application.streamingAssetsPath, path);
Debug.Log(filePath);
if (File.Exists(filePath))
{
string dataAsJson = File.ReadAllText(filePath);
LocalizationData loadedData = JsonUtility.FromJson<LocalizationData>(dataAsJson);
for (int i = 0; i < loadedData.items.Length; i++)
{
localizedText.Add(loadedData.items[i].key, loadedData.items[i].value);
}
Debug.Log("Localization Manager: Data loaded, dictionary contains: " + localizedText.Count + " entries.");
}
else
{
Debug.LogError("Localization Manager: Cannot find data file name: " + filePath);
return;
}
isReady = true;
}
解决方案
我会回答我自己的问题。提供的答复很有帮助,但不是问题的解决方案。
问题实际上不在代码中,而在于对正在传递的文件的引用。该文件需要包含 .json 的扩展名,否则它根本找不到它。所以在这种情况下,答案是将 Path 的值从 en-US 更改为 en-US.json。
推荐阅读
- google-bigquery - 如何将大量、大量和嵌套的数据从 GCS 加载到 BigQuery
- javascript - 如何在查询字符串参数中发送数组数组?
- javascript - Javascript 不认为我的变量是变量(数组问题)
- linux - Bash 脚本在终端模拟器中工作,但不能作为 i3 键绑定
- hbase - EMR 是否支持 Hbase 复制
- count - 如何使用 Count 从 Power BI 中同一表的另一列的一列中获取总计?
- android - 在片段中从布局中删除空格:CollapsingToolbarLayout +NestedScrollView + ViewPager
- javascript - 在 mongoDB 中插入记录然后更新它 - Node.Js
- spring-mvc - 如何将模型属性添加到默认错误页面
- compiler-construction - 野牛中间规则动作不起作用