2

基本的に、私はディレクトリを編集するために文字列操作を行おうとしています。ディレクトリを編集しようとするコードを見つけましたが、それを使用すると、「right」が関数として認識されず、rightプロパティとしてのみ認識されるため、エラーが発生します。

インポートしていないものがあるのか​​、それとも「right」が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

2 に答える 2

6

しかし、私がそれを使用すると、「right」は関数として認識されず、rightプロパティとしてのみ認識されるため、エラーが発生します。

「正しい」プロパティがある場合は、関数を完全に修飾できます。

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

詳細については、RightFunctionのドキュメントを参照してください

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」などが表示されます。

于 2012-06-20T00:25:53.903 に答える
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

于 2012-06-20T00:39:09.457 に答える