尝试获取 File.exists 返回 true 和 InputField 总是返回 false

问题描述 投票:0回答:2

我正在尝试设置一个条件,如果文件存在,则读取它的属性。我这样做的方法是让用户写一个 ID,如果该 ID 与文件名匹配,那么它就会成为条件。但是,我无法通过 UserInput 使其返回 true,但是当我将 ID 直接写入代码时它可以工作,而且我真的不知道发生了什么。

我尝试在控制台中打印直接写入的 ID 字符串和 InputField,结果看起来是一样的: Console printing

当我使用代码中写入的字符串和 InputField 打印目录位置时,它看起来像这样:File ubication and whether it exists or not

我真的不知道如何从这里开始,我已经被困了很长一段时间,这是我使用的代码(非常简单):

    string path = BackupBO.Instance.DirectoryName + BackupSelected + "/" + "BBC24F4DE88E4031.txt";//UserInput en teoria
    string pathInput = BackupBO.Instance.DirectoryName + BackupSelected + "/" + UserInput.text+".txt";
    Debug.Log("Path with string literal: "+path);
    Debug.Log("Path with UserInput: " + pathInput);
    Debug.Log("Does the path with string literal exist?" + File.Exists(path));
    Debug.Log("Does the path with UserInput exist?" + File.Exists(pathInput));
c# unity3d
2个回答
0
投票

显然 TextMeshProUGUI 有一个错误,即 InputField 中的文本在文本末尾有一个不可见的字符。我将其更改为遗留文本和普通 InputField 并且它有效。


0
投票

这是一个已知的“问题”,在

TextMeshProUGUI
TMP_InputField
组件中有一个尾随的不可见字符。出于这个和其他原因,您不应该通过输入字段的
TMP_Text
组件。

你应该直接通过

TMP_InputField.text
属性来减轻这种情况并包含实际的输入字符串。

public TMP_InputField UserInput;

应该解决那个问题

© www.soinside.com 2019 - 2024. All rights reserved.