を使用することをお勧めしますRegex
。問題の特定のURLの場合、正規表現パターンは次のようになります。
var pattern =
"^smb:\/\/((?<user>[\w-]+):(?<pwd>[\w-]+)@)?(?<host>[a-z0-9\.-]+)(?<path>.+)$";
URLをパターンと照合し、名前でパーツを抽出できます。例えば
var regex = new Regex(pattern);
var match = regex.Match(url);
if(match.Success) {
// the url is smb
var username = match.Groups["user"].Value;
var password = match.Groups["pwd"].Value;
var hostname = match.Groups["host"].Value;
var path = match.Groups["path"].Value;
}
問題の特定のURLに対して、次の変数があります。
// smb://hostname/public/example.txt
username: string.Empty
password: string.Empty
hostname: hostname
path: /public/example.txt
// smb://username:password@hostname/public/example.txt
username: username
password: password
hostname: hostname
path: /public/example.txt
// smb://10.0.0.1/public
username: string.Empty
password: string.Empty
hostname: 10.0.0.1
path: /public
与えられたパターンは単純なデモパターンです。したがって、このようにしたい場合は、コードが正しく機能するように、複雑で完全で正しいパターンを作成する必要があります。ご不明な点や問題がございましたら、お気軽にお問い合わせください。