- ベストアンサー
文字列の最後の文字取得
またまたお世話になります。 Microsoft Visual Basic 2008 Express Editionを使ってます。 MyFolder.Description = "フォルダを指定してください" MyFolder.RootFolder = System.Environment.SpecialFolder.Desktop MyFolder.SelectedPath = "C:\Program Files" If MyFolder.ShowDialog() = DialogResult.OK Then If ???= "\" Then NewMyFolder = MyFolder.SelectedPath & "test" Else NewMyFolder = MyFolder.SelectedPath & "\test" End If End If MyFolder.Dispose() MkDir(NewMyFolder)←? Label2.Text = NewMyFolder ダイアログで選択してそこにtestフォルダを作成したいのですが。。。 MyFolder.SelectedPathが "C:\Program Files"の場合(例) "D:\"の場合(例) 文字列の最後の文字を取得したいのですが ???の部分がわかりません。 Rigthは使えませんでした。 ???の部分を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
If MyFolder.ShowDialog() = DialogResult.OK Then dim ss as String = MyFolder.SelectedPath if ss.substring( ss.length -1 ) = "\" then NewFolder = ss + "\test" else NewFolder = ss + "test" end if End If といった具合で ... StringクラスのSubstring以外に VisualBasic名前空間のRightを使うなら Imports Microsoftとコードの冒頭で宣言して if VisualBasic.Right( ss, 1 ) = "\" then と記述するか if Microsoft.VisualBasic.Right(ss,1) = "\" then メソッドを完全修飾名で記述します
その他の回答 (2)
- bluecampus
- ベストアンサー率66% (138/209)
パスの作成に関する文字列操作であれば、System.IO.Path.Combineメソッドを使ったほうが ベターだと思います。 http://msdn.microsoft.com/ja-jp/library/system.io.path.combine.aspx あと、2008であればUsingをつかえば、Disposeを気にしなくても良いです。 http://msdn.microsoft.com/ja-jp/library/htd05whh.aspx ディレクトリ作成は、MkDirよりもSystem.IO.Directory.CreateDirectoryを使うとか。 http://msdn.microsoft.com/ja-jp/library/system.io.directory.createdirectory(VS.80).aspx
お礼
Usingやディレクトリ作成の方法も教えていただいてありがとうございます。^^ そういったやり方もあるのですね。。。 しっかりと勉強させていただきました。 ご教授ありがとうございます。
- redfox63
- ベストアンサー率71% (1325/1856)
別の手段として StringクラスのLastIndexOfを使う手もあります LastIndexOfやIndexOfは 0ベースの値を返すので少々注意が必要です 0ベースとは 1番目が0、2番目が1、3番目が2といった具合になります 『C:\』の場合の『\』は2 『C:\work\Test』の場合は 7 ということになります これを使って if ss.LastIndexOf( "\" ) = ss.Length - 1 then といった具合で判定できます
お礼
また違ったやり方があるのですね。 状況によって使い分けてみます。 ご教授ありがとうございます。
お礼
ありがとうございます。 まだまだ勉強不足でした。。。 教えていただいたコードで完成させることができそうです。^^