繁体   English   中英

命名空间“System.Windows”中不存在类型或命名空间名称“Forms”修复

[英]The type or namespace name 'Forms' does not exist in the namespace 'System.Windows' FIX

有人可以帮我解决这个问题吗,我正在尝试使用 System.Windows.Forms 中的 OpenFileDialog class 打开文件对话框并读取所选文件。 然后,这个错误出现了。 我已经引用了它但仍然相同,下面是代码。

`使用 UnityEngine 使用 UnityEngine.UI 使用 System.Windows.Forms;

公共 class OpenFileButtonScript: MonoBehaviour { 公共 TextFieldScript textFieldScript;

public void OpenFile()
{
    OpenFileDialog openFileDialog = new OpenFileDialog();
    openFileDialog.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*";
    openFileDialog.FilterIndex = 1;
    openFileDialog.Multiselect = false;

    if (openFileDialog.ShowDialog() == DialogResult.OK)
    {
        string filePath = openFileDialog.FileName;
        string text = System.IO.File.ReadAllText(filePath);
        textFieldScript.inputField.text = text;
    }
}

}`

看起来您可以访问所有本机 Window 系统库,但它看起来就是这样。 实际上,很多时候你只是简单地得到了存根或垫片,它们看起来像完整的 Window 库,因为 Unity 想要使用这些命名空间中的某个元素。 如果您考虑一下,您上面显示的代码,您认为它应该在 Android 或任天堂设备上做什么? 简单的答案是,它根本行不通。

通常在这种情况下,您必须获得对本机操作系统的访问权限,并直接执行这些调用。 例如,Asset Store 上有一个文件浏览器资产,可以为您执行此操作。 它不是免费的,因为这个过程并不简单。

根据您想付出的努力,您可以从本地文件存储中读取文件(根据平台的不同程度)。 可以读取某个位置的文件列表,并使用 uGUI 或 UIToolkit 创建您自己的文件打开对话框。 同样,这也不是一项微不足道的任务。 所以你必须确定你想要 go 沿着那条路走下去。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM