2012-06-20 40 views
2

基本上,我試圖做一些字符串操作來編輯目錄。 我發現了一些代碼來嘗試編輯這些目錄,但是當我使用它時,它不會將「right」識別爲一個函數,只會將其識別爲正確的屬性,從而產生錯誤。VB無法獲得正確的函數來處理字符串

我想知道是否有東西我沒有導入,或者如果可能'正確'是一個過時的功能,在VB6中使用,但取而代之的東西。

我的代碼如下:

Dim Foo As String 
Dim Bar As String 
Bar = 'some form of directory input i.e. my.computer.currentdirectory 
Foo = right(Bar, (Len(Bar) - InStrRev(Bar, "/"))) 
MsgBox(Foo) 

理想我需要使用一個更好的操控目錄的方法或方式來獲得「正確」的功能工作。

回答

4

查找System.IO.Path - 有很多有用的工具, GetDirectoryName和用GetFileName尤其是,他們中的目錄和文件名進行工作。

Bar = "C:\Dir1\Dir2\Dir3" 
Foo = IO.Path.GetFileName(Bar) 'now = Dir3 
Foo = IO.Path.GetDirectoryName(Bar) 'now = C:\Dir1\Dir2 

http://msdn.microsoft.com/en-us/library/system.io.path.getfilename
http://msdn.microsoft.com/en-us/library/system.io.path.getdirectoryname

+0

謝謝你的信息。我之前使用過IO寫入Streamwriters /讀者,但我不認爲它會有這樣的功能。 非常感謝您的答案的一致性,它使事情變得非常清晰,我相信您的代碼與很多程序員的意大利麪條相比可能非常可讀。 – Pharap

5

但是當我使用它時,它不會將'right'識別爲一個函數,只會將其識別爲正確的屬性,從而產生一個錯誤。

如果你有一個「正確」的屬性,你可以完全限定功能:

Foo = Microsoft.VisualBasic.Right(Bar, (Len(Bar) - InStrRev(Bar, "/"))) 

有關詳細信息,請參閱該文檔爲Right Function

請注意,對於目錄解析,您可以通過System.IO命名空間更加乾淨地處理這個問題。特別是,您可以構建一個DirectoryInfo並通過Parent屬性獲取父文件夾。您可以使用Path.GetDirectoryName來處理字符串。在你的情況下,如果你將Bar設置爲「C:\ Some \ Path \ To \ A \ File.txt」並且你撥打Path.GetDirectoryName(Bar),它將返回「C:\ Some \ Path \ To \ A」。如果你打開它,你會得到「」C:\ Some \ Path \ To「等。

+0

沒有一個合適的物業,因爲我是用一個自制類在當時只有子程序,事實證明,雖然我期待正確的是一個字符串的功能,因爲我認爲這比邏輯更合乎邏輯它是一個標準功能。 感謝您的幫助,但建議的兩種方法都會對我正在處理的內容有所幫助。 – Pharap