Vb.net Visual Basic:文件被认为位于错误的文件夹中
好的,下面是我的故事: 我正在构建一个fileviewer,并试图在listview中删除选定的文件 当我试图删除它时,它给了我一个错误,说文件找不到。我看了看我的桌面,文件就在那里。以下是原始代码:Vb.net Visual Basic:文件被认为位于错误的文件夹中,vb.net,file,Vb.net,File,好的,下面是我的故事: 我正在构建一个fileviewer,并试图在listview中删除选定的文件 当我试图删除它时,它给了我一个错误,说文件找不到。我看了看我的桌面,文件就在那里。以下是原始代码: dim f as string = lv1.focuseditem.text my.computer.filesystem.deletfile(f) lv1.update() 这给了我那个错误。我的更新代码应该告诉我计算机认为我的文件在哪里: Dim file As String = lv1.F
dim f as string = lv1.focuseditem.text
my.computer.filesystem.deletfile(f)
lv1.update()
这给了我那个错误。我的更新代码应该告诉我计算机认为我的文件在哪里:
Dim file As String = lv1.FocusedItem.Text
Dim testFile As System.IO.FileInfo
testFile = My.Computer.FileSystem.GetFileInfo(file)
Dim folderPath As String = testFile.DirectoryName
MsgBox(folderPath)
这将显示一个消息框,其中显示以下路径:
C:\Users\tgs266\Desktop\SIOS\SIOS\SIOS\obj\Debug\test.txt
但真正的文件位置是:
C:\Users\tgs266\Desktop\test.txt
请帮助当您想查看用户桌面位置时,您的代码似乎正在查看服务器上的应用程序路径。如何获取
列表视图的文件名?只是文件名而没有路径吗
例如,如果lv1.FocusedItem.Text
是“test.txt”,并且这是您使用的值(没有路径),默认情况下,程序将在其执行的目录中查找。这很可能是您将C:\Users\tgs266\Desktop\SIOS\SIOS\SIOS\obj\Debug\test.txt作为位置的原因,而不是您所期望的位置
如果所有文件都在桌面上,则可以与一起使用以获取文件,如下所示:
Dim file As String = lv1.FocusedItem.Text
Dim testFile As System.IO.FileInfo
testFile = My.Computer.FileSystem.GetFileInfo(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\" + file)
Dim folderPath As String = testFile.DirectoryName
MsgBox(folderPath)
但是,如果要将文件分散在整个系统中,最好按照@puropoix在其评论中指出的方式存储完整路径。您需要导航到用户目录。。。查看使用服务器环境值。我的程序上没有服务器没有。。。即使您在工作站上有一个exe,您也可以使用环境值。。。在这种情况下,服务器就是运行应用程序的机器。你能给我发一些源代码或其他东西吗?因为我没有听你的。当你将文件加载到listview中时,将完整的文件名存储为子项(如果你不添加列标题,它将不会显示)。然后,如果要删除,请使用该子项。此外,子项可以有名称,因此您可以跟踪正在存储的内容以使其更简单。“test”是一个非常糟糕的名称,因为您可以在多个位置使用多个名称。这个非常长的路径名实际上看起来像VS project文件夹(Obj\Debug
)使用这样的通用名称,他可能在追踪幽灵——系统上显然有两个“测试”文件:一个在debug@tgs266中,从fileinfo返回,另一个在desktop@Plutonix-我同意它看起来像VS项目文件夹。实际上,我希望它看起来像bin\debug,但我对VB.NET的熟悉程度不如对C#的熟悉,所以可能会有一些VB的特别之处。无论如何,如果不知道OP在ListView中放了什么,就很难给出更详细的答案。