找到UNC路径的一部分并输入变量?

时间:2010-05-03 13:26:49

标签: c# .net string

我正试图剥离正在传递的unc路径的最后一部分,并将其放入一个变量中,以便在下一行的方法中使用。

示例路径是 - > \\ourfileserver\remoteuploads\countyfoldername\personfoldername

如何从中剥离countyfoldername

我曾想过尝试

var th = e.FullPath.LastIndexOf('\\');
        var whichFolder = folderPath.Substring(th);

但这是一个转义字符,它也不喜欢@

这是否是正确的方向?


我想我有些困惑。 LastIndexOf不起作用,因为我需要countyfoldername,在我的例子中,它发生在3/4的位置。

另外,我需要存储在变量中的countyfoldername,而不是文件名本身。

为了给出一些上下文,我有一个在服务中运行的FileSystemWatcher。它正在监视单个文件夹路径,并在那里创建文件时通过电子邮件发送。现在我需要修改它。现在该文件夹路径中有4个县文件夹,我需要根据文件的创建位置向其他电子邮件地址发送电子邮件。

如果我能弄清楚如何可靠地获取县文件夹名称,我可以使用简单的switch语句。

由于

5 个答案:

答案 0 :(得分:5)

实际上,你应该使用Uri Class并将它分成几段。

    Uri uri = new Uri(@"\\ourfileserver\remoteuploads\countyfoldername\personfoldername");
    Console.WriteLine(uri.Segments[3]); // personfoldername
    Console.ReadLine();

答案 1 :(得分:2)

string folder = System.IO.Path.GetFileName(fullpath)

完整文档here

答案 2 :(得分:1)

你有没有尝试过:

var myCounty = e.FullPath.LastIndexOf("\\"); 

更新: 为了获得国家文件夹的名称,只需删除从县查找的字符数,然后再做另一个索引..

答案 3 :(得分:1)

您需要从LastIndexOf(“\”)

创建子字符串

看起来像:

var folderName = e.FullPath.Substring(e.FullPath.LastIndexOf("\\"));

答案 4 :(得分:0)

我认为你应该分手。

string[] Sep= {"\\"}

string[] Folders;
Folders= folderPath.Split(NewLine, StringSplitOptions.RemoveEmptyEntries);

您可以遍历数组并完全控制字符串。