【发布时间】:2020-07-24 15:11:54
【问题描述】:
我正在将文件夹中的文件路径添加到列表框,然后在富文本框中将其作为文本打开。我在另一个列表框中使用了与下面代码相同的语法来实现相同的目的,它工作得很好。但是,在当前示例中,我在默认 MyProjects 文件夹中有两个文件(即默认文件夹由我的应用程序创建),但是当我将文件夹中的文件路径作为项目添加到列表框中时,我得到第三个项目~$ 在文件路径中?这一项显然是列表中第一个文件路径的某种重复?默认文件夹中的两个文件也是由我的应用程序创建的,因此,如果这是文件访问问题,我不明白为什么我无法访问我的应用程序创建的文件?谁能告诉我这里发生了什么?
我的尝试:
我已尝试调试以检查额外文件路径的来源。据我所知,它是在我将文件路径添加到列表框时创建的?即注释掉将项目添加到列表框中的代码会停止添加所有项目,但不会告诉我这个额外项目来自哪里?
“额外物品”问题:
System.Windows.Forms.ListBox+ObjectCollectionC:\Users\username\Documents\MySolution\MyProjects\RTFdoc.rtf C:\Users\用户名\Documents\MySolution\MyProjects\Testdoc.rtf C:\Users\用户名\Documents\MySolution\MyProjects~$Fdoc.rtf
守则:
lbxName.Items.AddRange(Directory.GetFiles("C:\Users\" + username + "\Documents\MySolution\MyProjects"))
lbxName.SelectedIndex = 0
加载代码:
For Each item In lbxName.SelectedItems
RTB.LoadFile(lbxName.SelectedItem, RichTextBoxStreamType.RichText)
Next
【问题讨论】:
-
它只是为您提供存在的文件。如果您不想要“额外”文件,请将其删除。首先弄清楚为什么要生产它并防止这种情况发生。
GetFiles()调用在这里没有失败... -
此文件(很可能)是您用来修改或创建该 .rtf 的编辑器使用的隐藏文件。此文件包含有关哪个用户打开了文件以及与 SO 信息关联的设置的信息。启用隐藏文件可视化(在文件夹选项中)以查看是否是这样,和/或由创建这些文件的编辑器正确打开/关闭或手动删除。
-
嗨 Idle_Mind,我问这个问题的原因是因为在我的代码中调试并寻找可能的解决方案后,我无法“弄清楚为什么......”正在生成额外的文件!正如您在我对 G3nt_M3caj 的回复中所看到的,该文件不是文件资源管理器中的隐藏文件!
-
“我正在将文件夹中的文件路径添加到列表框,然后在富文本框中将其作为文本打开。”您如何将文件加载到 RicthTextBox 中?我从未真正看过,.Net 的RichTextBox.LoadFile() 是否创建了临时文件?
-
嗨 G3nt_M3caj,我在 FE 中启用了隐藏文件,但该文件没有出现在文件夹中。我猜它可能是在将项目添加到列表框时生成的某种临时文件?但是,虽然我可以将此文件路径视为列表框中的第三项并在调试中获得文件路径(即根据我上面的示例),但我不知道如何调试以发现额外文件的来源或如何防止创建文件?我从富文本框生成 RTF 标记,保存到 .rtf 文件,将文件作为 RTF 标记打开并转换回生成 RTB 内容,即图像和文本。
标签: vb.net listboxitem