文字列内の一部の文字を削除する方法..
string s="testpage\information.xml"
その方法はinformation.xmlだけが必要ですか?
含まれる値s
が常にファイルパスであると想定し、Path
クラスを使用してファイル名を抽出します
var filename = Path.GetFileName(s);
System.IO.Path
文字列にはファイルパス情報が含まれているため、これに役立つ場合があります。あなたの場合、あなたはPath.GetFileName(string path)
文字列からファイル名を取得するために使用することができます。
例
string s = @"testpage\information.xml";
string filename = Path.GetFileName(s);
//MessageBox.Show(filename);
ありがとう、
これがお役に立てば幸いです:)
ファイルパスの形式は
aaaa\bbb\ccc\dddd\information.xml
最後の文字列を取得するには、区切り文字を使用して文字列を分割できます\
String path = @"aaaa\bbb\ccc\dddd\information.xml";
String a[] = path.Split('\\');
これにより、文字列配列は次のようになります。["aaaa", "bbb", "ccc", "dddd", "information.xml"]
次のようにファイル名を取得できます
String filename = a[a.Length-1];
ファイル パスを使用している場合は、Path.GetFileNameメソッドを参照してください。ファイルが存在するかどうかはチェックされません。だから速くなる。
s = Path.GetFileName(s);
ファイルが存在するかどうかを確認する必要がある場合は、File.Exists クラスを使用します。
別の方法は、 String.Split() メソッドを使用することです
string[] arr = s.Split('\\');
if(arr.Length > 0)
{
s = arr[arr.Length - 1];
}
別の方法は、正規表現を使用することです
s = Regex.Match(s, @"[^\\]*$").Value;
ファイル パスになる場合は、System.IO.Path
クラス ( MSDN ) を使用してファイル名を抽出できます。
string s = "testpage\information.xml"
var filename = Path.GetFilename(s);
常にバックスラッシュ区切りの右側にある場合は、次を使用できます。
if (s.Contains(@"\"))
s= s.Substring(s.IndexOf(@"\") + 1);
これがあなたが望むものであることを願っています:
var result=s.Substring(s.LastIndexOf(@"\") + 1);
string.Replcae を使用
string s = @"testpage\information.xml";
s = s.Replace(@"testpage\\",""); // replace 'testpage\' with empty string
Output => s=information.xml を取得します
@ は、文字列にバックスラッシュがあるためにのみ必要です
STRING REPLACE の詳細については、
http://www.dotnetperls.com/replace
http://msdn.microsoft.com/en-us/library/system.string.replace.aspx
次のコード行を使用して、ファイル拡張子を取得できます。
string filePath = @"D:\Test\information.xml";
string extention = Path.GetExtension(filePath);
ファイル名のみが必要な場合は、
string filePath = @"D:\Test\information.xml";
string filename = Path.GetFilename(filePath );
C++ では、このようなことができます。基本的に、パスの右から左に「/」または「\」を検索し、区切り文字の最初の出現から文字列をトリミングします。
string ExtractFileName(const string& strPathFileName)
{
size_t npos;
string strOutput = strPathFileName;
if(strPathFileName.rfind(L'/', npos) || strPathFileName.rfind(L'\\', npos))
{
strOutput = strPathFileName.substr(npos+1);
}
return strOutput;
}