我的文件名看起来像
目录\名称secondName-blabla.txt
如果我使用string .split,我的代码需要知道我正在使用的分隔符, 但如果在某一天我将替换分隔符,我的代码将会中断
是否有任何构建方式可以拆分以获得以下结果?
Directory
name
secondNmae
blabla
txt
由于
编辑我的问题比分割文件名更通用,一般是分割字符串
答案 0 :(得分:8)
分割文件名的最佳方法是使用System.IO.Path
您不清楚如何处理directory1\directory2\
,
但一般情况下,您应该使用此静态类来查找路径,名称和后缀部分。
之后,您将需要String.Split()
来处理-
分隔符,您只需要将分隔符设置为配置。
答案 1 :(得分:2)
您可以使用分隔符创建数组:
string value = "Directory\name-secondName-blabla.txt";
char[] delimiters = new char[] { '\\', '-', '.' };
string[] parts = value.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
答案 2 :(得分:0)
var filepath = @"Directory\name-secondName-blabla.txt";
var tokens = filepath.Split(new[]{'\\', '-'});
答案 3 :(得分:0)
如果您担心将来更改分隔符令牌,请在设置文件中将其设置为常量,这样您只需在一个位置更改它。或者,如果您认为它会定期更改,请将其放在配置文件中,这样您就不必每次都发布新版本。
答案 4 :(得分:0)
正如Henk上面提到的那样,使用System.IO.Path
及其静态方法,例如GetFileNameWithoutExtenstion
,GetDirectoryName
等。看看这个链接:
http://msdn.microsoft.com/en-us/library/system.io.path.aspx