2014-04-23 107 views
0

我想從文件名獲取文件的路徑。我在我的桌面上創建了一個可執行文件,Commands.exe,我試圖通過控制檯應用程序獲取它的完整路徑。我想讓程序在整個計算機中搜索該文件(爲簡單起見,它位於桌面上)並返回路徑,同時記住該文件可能位於任何位置。我想程序返回的路徑是:如何通過文件的名稱獲取文件的完整路徑

「C:\用戶\ Jimbob \桌面\ Commands.exe」

我的代碼:

Imports System.IO 
Module Module1 
    Dim fileLocation As String 
    Dim filename As String = "Commands.exe" 
    Sub Main() 
     fileLocation = Path.GetFullPath(filename) 
     Console.WriteLine(fileLocation) 
     Console.ReadLine() 
    End Sub 
End Module 

而是打印出來

「C:\ Users \ Jimbob \文檔\的Visual Studio 2012 \項目\獲得路徑 測試\ GET路徑測試\ BIN \調試\ Commands.exe」

它打印出該項目的所有我的代碼是在的路徑。在這種路徑,在調試文件夾中甚至沒有一個Commands.exe

幫助?

+0

http://msdn.microsoft.com/en-us/library/ms143316.aspx –

回答

0

或不能你只是

dim fileName as string = My.Application.Info.DirectoryPath() & "\Commands.exe" 
+0

我只是去嘗試,但它仍然會返回'「C:\用戶\ Jimbob \ Documents \ Visual Studio 2012 \ Projects \獲取路徑測試\獲取路徑測試\ bin \ Debug \ Commands.exe「' – ohSkittle

+0

請求您的赦免。當我第一次閱讀它時,我沒有解釋你寫的是什麼。你有沒有嘗試約翰布斯托斯的建議?這似乎更適合。 – thetimmer

+0

對不起,基本上它給了我這個程序所在項目的路徑。我的電腦上唯一的「Commands.exe」就是我的桌面上的那個。 – ohSkittle

0

可以使用Directory.GetFilesFileSystem.GetFiles方法來做到這一點。

東西線沿線的:

fileLocation = My.Computer.FileSystem.GetFiles("C:\", 
         FileIO.SearchOption.SearchAllSubDirectories, 
         filename)(0) 
+0

我試過了,但它返回了這個:未處理的類型異常mscorlib.dll中出現'System.UnauthorizedAccessException' 其他信息:訪問路徑'C:\ $ Recycle.Bin \ S-1-5-21-1076098747-3259325876-2786358935-1000'被拒絕。雖然我的回收站中沒有任何東西:/ – ohSkittle

+0

請看這篇文章中的答案:http://social.msdn.microsoft.com/Forums/en-US/e2a027b2-7d4d-4844-bdbb-b577f621d547/mycomputerfilesystemgetfilesc-fileiosearchoptionsearchallsubdirectories -txt-leads?forum = vbinterop –

+0

也許這個:http://stackoverflow.com/questions/13130052/directoryinfo-enumeratefiles-causes-unauthorizedaccessexception-and-other –

相關問題