C# 删除Filename.exe之前的信息

C# 删除Filename.exe之前的信息,c#,listbox,directory,streamreader,C#,Listbox,Directory,Streamreader,这将列出我使用folderBrowserDialog1选择的目录中所有目录中的所有文件,但当它将它们加载到列表框中时,列表框中会出现如下项目 C:\users\username\desktop\filename.exe C:\users\username\desktop\filename.exe C:\users\username\desktop\filename.exe 等等。。有没有办法删除C:\users\username\desktop\并保留filename.exe 这是我的代码,可能

这将列出我使用folderBrowserDialog1选择的目录中所有目录中的所有文件,但当它将它们加载到列表框中时,列表框中会出现如下项目

C:\users\username\desktop\filename.exe

C:\users\username\desktop\filename.exe

C:\users\username\desktop\filename.exe

等等。。有没有办法删除C:\users\username\desktop\并保留filename.exe

这是我的代码,可能会有帮助

private void DirSearch(string dir)
    {
        string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.*", SearchOption.AllDirectories);

        foreach (var file in files)
        {
            ListBox2.Items.Add(file);
        }
    }
使用方法:

使用方法:


从你对@Dennis的评论来看,这应该是可行的

private void DirSearch(string dir)
    {
        string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.*", SearchOption.AllDirectories);

        foreach (var file in files)
        {
            ListBox2.Items.Add(file.Replace(dir, string.empty);
        }
    }

从你对@Dennis的评论来看,这应该是可行的

private void DirSearch(string dir)
    {
        string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.*", SearchOption.AllDirectories);

        foreach (var file in files)
        {
            ListBox2.Items.Add(file.Replace(dir, string.empty);
        }
    }
尝试递归方法

私有void Form1\u加载(对象发送方、事件参数e) {

        DirSearch(folderBrowserDialog1.SelectedPath);
    }
    private void DirSearch(string dir)
    {
        try
        {
            string userpath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
            folderBrowserDialog1.ShowDialog();
            string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.*", SearchOption.AllDirectories);
            if (!dir.Equals(userpath))
            {
                foreach (var file in files)
                {
                    listBox1.Items.Add(System.IO.Path.GetFileName(file));
                }
                IEnumerable<string> dirs = Directory.EnumerateDirectories(dir);
                foreach (string dsdir in dirs)
                {
                    DirSearch(dsdir);
                }
            }
        }
        catch (Exception ex)
        {
        }
    }
DirSearch(folderBrowserDialog1.SelectedPath);
}
私有无效目录搜索(字符串目录)
{
尝试
{
字符串userpath=Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
folderBrowserDialog1.ShowDialog();
string[]files=Directory.GetFiles(folderBrowserDialog1.SelectedPath,“***”,SearchOption.AllDirectory);
如果(!dir.Equals(userpath))
{
foreach(文件中的var文件)
{
listBox1.Items.Add(System.IO.Path.GetFileName(文件));
}
IEnumerable dirs=目录。枚举目录(dir);
foreach(dirs中的字符串dsdir)
{
DirSearch(dsdir);
}
}
}
捕获(例外情况除外)
{
}
}
尝试递归方法

私有void Form1\u加载(对象发送方、事件参数e) {

        DirSearch(folderBrowserDialog1.SelectedPath);
    }
    private void DirSearch(string dir)
    {
        try
        {
            string userpath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
            folderBrowserDialog1.ShowDialog();
            string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.*", SearchOption.AllDirectories);
            if (!dir.Equals(userpath))
            {
                foreach (var file in files)
                {
                    listBox1.Items.Add(System.IO.Path.GetFileName(file));
                }
                IEnumerable<string> dirs = Directory.EnumerateDirectories(dir);
                foreach (string dsdir in dirs)
                {
                    DirSearch(dsdir);
                }
            }
        }
        catch (Exception ex)
        {
        }
    }
DirSearch(folderBrowserDialog1.SelectedPath);
}
私有无效目录搜索(字符串目录)
{
尝试
{
字符串userpath=Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
folderBrowserDialog1.ShowDialog();
string[]files=Directory.GetFiles(folderBrowserDialog1.SelectedPath,“***”,SearchOption.AllDirectory);
如果(!dir.Equals(userpath))
{
foreach(文件中的var文件)
{
listBox1.Items.Add(System.IO.Path.GetFileName(文件));
}
IEnumerable dirs=目录。枚举目录(dir);
foreach(dirs中的字符串dsdir)
{
DirSearch(dsdir);
}
}
}
捕获(例外情况除外)
{
}
}

谢谢你的帮助,但我只想删除C:\users\username\desktop\而不是像C:\users\username\desktop\folder\folder\filename.exe中那样的其他文件,我想保留folder\folder\filename部分。@Terri:这正好从中删除了“C:\users\username\desktop\”(路径)“C:\users\username\desktop\filename.exe”并返回“filename.exe”(文件名)。这就是你的问题所在,不是吗?如果不是,请澄清。Davids comment符合我的要求。抱歉,我没有正确澄清。感谢这对其他方面有所帮助,但我只想删除C:\users\username\desktop\而不是像C:\users\username\desktop\folder\folder\filename.exe中的其他文件,我想保留folder\folder\filename部分。@Terri:这将从“C:\users\username\desktop\”(路径)中完全删除“C:\users\username\desktop\filename.exe”,并返回“filename.exe”(文件名)。这是你的问题,不是吗?如果不是,请澄清。Davids comment做了我想做的事抱歉我没有澄清这是我想做的但没有澄清这是我想做的但没有澄清这是我想做的但没有澄清这是我想做的但没有澄清这是正确的谢谢David。Davids comment做了这一切,并且它的代码更小、更多无论如何,谢谢你的贡献。Davids comment做了这一切,而且它更小,更节省代码。无论如何,谢谢你的贡献。