在实现 OpenFileDialog 时,"System.IO.FileStream"显示在生成的编辑文本框中,而不是文件名和路径上。如何?
On implementing a OpenFileDialog box,"System.IO.FileStream" is appearing on the resultant edittext box rather than the filename and path. How?
在基于对话框的MFc应用程序中在Visual Studio中实现openFileDialog函数时,我在编辑文本框中得到"System.IO.FileStream"作为结果
我已经在这个问题中包含代码。在 DoDataExchange 函数中,IDC_EDIT1是编辑文本框的 ID。
执行此代码时,将打开"文件打开"对话框,选择文件时,"System.IO.FileStream"将显示在编辑文本框中。
void CMFCApplication6Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT1, path);
}
void CMFCApplication6Dlg::OnBnClickedBrowse()
{
System::IO::Stream^ myStream;
System::Windows::Forms::OpenFileDialog^ openFileDialog1 = gcnew OpenFileDialog;
openFileDialog1->InitialDirectory = "c:\";
openFileDialog1->Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
openFileDialog1->FilterIndex = 2;
openFileDialog1->RestoreDirectory = true;
UpdateData(true);
if (openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
{
if ((myStream = openFileDialog1->OpenFile()) != nullptr)
{
path = myStream->ToString();
UpdateData(false);
myStream->Close();
}
}
}
我相信
你的问题出在声明中
path = myStream->ToString();
ToString()
函数返回"表示当前对象的字符串"。这是您尝试显示路径时看到的字符串(描述对象类型的字符串,因此是System.IO.FileStream(。
编辑:根据要求,我相信可以使用FileDialog.FileName
属性检索路径。所以 openFileDialog1->FileName
可用于访问路径。
相关文章:
- 有没有一种简单的方法可以从 c++ 中的路径获取文件名?
- 从 C++ 中的文件路径中提取文件名
- 指定用户定义的文件名的路径
- 从 QFileSystemModel 中的文件路径和文件名获取 QModelIndex
- 如何更改变量文件名的文件路径?
- Xcode 8.3.2 中的错误警告:文件的非可移植路径 - 指定的路径与磁盘上的文件名不同
- #line 指令的 nul.h 文件名的文件路径不正确
- 从文件名中提取文件名,路径来自参数
- 运行正则表达式时未选中的异常 - 从文件路径获取不带扩展名的文件名
- Simple_ls.cpp的C++Boost编译错误-未找到对Boost的引用::文件系统::路径::文件名
- 获取模块文件名不返回路径
- 向文件名参数(LPCSTR)添加预先声明的路径
- 如何生成唯一的文件名或路径
- c++将文件的路径组合为字符串和文件名
- 在vc++中,只从文件的完整路径中查找文件名
- 在 mingw 下编译时出现路径查找文件名错误
- 从流中获取文件名(或路径)
- 如何连接路径和不同的文件名 - C++
- C ++如何从路径字符串中删除文件名
- 使文件名保留在boost中的路径中