C# 如何检索正斜杠前后的字符
我有一个来自datareader的字符串: 我想得到文件名,这是第一个帐户 列表名是新的,列表地址是新的。这是我正在使用的代码: 如何检索站点地址和列表名称C# 如何检索正斜杠前后的字符,c#,C#,我有一个来自datareader的字符串: 我想得到文件名,这是第一个帐户 列表名是新的,列表地址是新的。这是我正在使用的代码: 如何检索站点地址和列表名称 //getting the file URL from the data reader string fileURL = dataReader["File URL"].ToString(); //getting the list address/path string listAdd = fileURL.Substring(fileUR
//getting the file URL from the data reader
string fileURL = dataReader["File URL"].ToString();
//getting the list address/path
string listAdd = fileURL.Substring(fileURL.IndexOf("/") + 1);
//getting the file name
string fileName = fileURL.Substring(fileURL.LastIndexOf("/") + 1);
您可以使用 然后,您可以从Uri对象获取各种位,例如 Authority-获取域名系统DNS主机名或IP地址以及服务器的端口号。 Host-获取此实例的主机组件 获取Uri实例的指定部分。
如果处理Uri,请使用相应的类
Uri u = new Uri(dataReader["File URL"].ToString());
。。。并按段数组访问路径的所需部分
string listAdd = u.Segments[3]; // remove trailing '/' if needed
string fileName = u.Segments[4];
。。。或者在您需要确保处理任意路径长度的情况下
string listAdd = u.Segments[u.Segments.Length - 2];
string fileName = u.Segments[u.Segments.Length - 1];
你应该使用这个类
它的主要用途是处理组合资源字符串
您可以使用:
获取主机地址字符串的步骤
获取服务器上文件的绝对路径以及随请求发送的查询信息
所有的您也可以使用:
您尝试过URI类吗?正则表达式可能是最简单的方法,但不能确定最佳性能。您可以使用LastIndexOf获取字符串中最后一个/的索引,然后从后面开始工作…我已经尝试过了,但意识到我不能使用它,因为地址路径my并不总是与我在问题上使用的地址路径相同。如果字符串不是真的已知,我如何使用它。。。我从dataReader获取字符串,在这里我从SQL表填充,只需使用从dataReader读取的字符串:string str=dataReader[File URL].ToString;该字符串抛出一个System.IndexOutOfRangeExceptionException从dataReader[文件URL]抛出。请检查您是如何为读卡器获取数据的。我尝试使用这个段,但是uriu=new-UridataReader[File URL].ToString;引发异常dataReader[File URL]引发了类型为“System.IndexOutOfRangeException”的异常。您没有显示dataReader[File URL]背后的内容。ToString,因此我假设您已使该部分正常工作。我的解决方案根据前面提到的示例URI进行了测试http://win-167nve0l50/dev/dev/new/1st 账户在该行上放置断点,并检查datareader是否有正确的列名或列索引。
string listAdd = u.Segments[u.Segments.Length - 2];
string fileName = u.Segments[u.Segments.Length - 1];
string str = "http://win-167nve0l50/dev/dev/new/1st Account";
Regex reg = new Regex("^(?<address>.*)\\/(?<list>[^\\/]*)\\/(?<file>.*)$");
var match = reg.Match(str);
if (match.Success)
{
string address = match.Groups["address"].Value;
string list = match.Groups["list"].Value;
string file = match.Groups["file"].Value;
}