2

总的来说,我试图从路径末尾删除文件名并显示路径的其余部分。例如此路径:C:\Users\Documents\Development\testing\11.0.25.10\AUW_11052_0_X.pts

我想剥离“AUW_11052_0_X.pts”文件,只显示“C:\Users\Documents\Development\testing\11.0.25.10\”

究竟是怎么做的呢?我不确定如何将其变成正则表达式模式。

这是我的问题更详细:

我要做的是创建一个正则表达式函数,它接受两个参数,原始路径然后是文件名(程序在某些时候循环遍历存储所有文件的列表并从中获取文件名)我是将创建一个正则表达式函数,该函数抓取最后一个“\”字符之后的任何内容,并将其与文件名参数进行比较。如果它确实匹配,则删除文件名,如果不匹配,则保留它。我的问题是弄清楚如何做一个在最后一个“\”字符之后找到任何东西的正则表达式模式,我不知道如何

答案:我找到了答案,模式是^(.*[\\\/])这将抓取每个字符直到最后一个“\”

4

2 回答 2

11

你正在寻找Path.GetDirectoryName().

于 2013-08-27T19:48:04.643 回答
0

为什么你不能做这样的事情?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace directorysearch
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectoryInfo di = new DirectoryInfo(@"c:\users\documents\development\testing");
            FileInfo[] files = null;
            DirectoryInfo[] dirs = null;
            dirs = di.GetDirectories();
            foreach (DirectoryInfo dir in dirs)
            {
                files = dir.GetFiles("*", SearchOption.TopDirectoryOnly);
            }
        }
    }
}

这允许您输入基本路径 (c:\users\documents\development\testing),然后操作该路径下的每个单独目录,然后操作每个目录下的每个单独文件?

于 2013-08-27T20:30:09.993 回答