Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net Visual Basic:文件被认为位于错误的文件夹中_Vb.net_File - Fatal编程技术网

Vb.net Visual Basic:文件被认为位于错误的文件夹中

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

好的,下面是我的故事:

我正在构建一个fileviewer,并试图在listview中删除选定的文件

当我试图删除它时,它给了我一个错误,说文件找不到。我看了看我的桌面,文件就在那里。以下是原始代码:

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中放了什么,就很难给出更详细的答案。