为了账号安全,请及时绑定邮箱和手机立即绑定

如何(StartsWith)从第 4 个字母开始?

如何(StartsWith)从第 4 个字母开始?

C#
慕斯709654 2022-12-24 14:16:01
我有个问题。我想通过单击按钮将“新文件夹”中的特定文件复制到“目标”文件夹。在“新文件夹”中包含各种不同名称的文件。例如:“abcUCU0001”、“abbUCA0003”、“hhhUCU0012”、“aaaUCS0012”等等。“新文件夹”包含超过1000 个文件,并且名称中有相同的 10 个字母。我想复制 10 个文件,它的名称必须有"UCU"。我不知道如何使用(startsWith)从第 4 个字母开始进行复制。对不起我的语法不好。private void button1_Click(object sender, EventArgs e){    string FROM_DIR = @"C:\Users\Desktop\Source";    string TO_DIR = @"C:\Users\Desktop\Target";    DirectoryInfo diCopyForm = new DirectoryInfo(FROM_DIR);    DirectoryInfo[] fiDiskfiles = diCopyForm.GetDirectories();    string filename = "UCU";    int count = 0;    foreach (DirectoryInfo newfile in fiDiskfiles)    {       try       {            if (newfile.Name=="New folder")            {                foreach (FileInfo file in newfile.GetFiles())                {                    if(file.FullName.StartsWith(filename))                    {                        File.Copy(file.FullName, Path.Combine(TO_DIR,file.Name));                        count++;                        if (count == 10)                        {                            break;                        }                    }                }            }        }        catch (Exception ex)        {            MessageBox.Show(ex.Message);        }    }    MessageBox.Show("success");}我希望在单击一个按钮后,10 个名为“UCU”的文件将复制到目标文件夹。
查看完整描述

2 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

如果所有文件都在同一个目录中(没有子目录),那么您可以使用以下方法获取所有文件:


    //assuming diCopyForm is the new folder reference

    // ? denotes 1 character while * is multiple chars

    var files = diCopyForm.GetFiles("???UCU*"); 

然后将它们复制过来。对于更复杂的条件,我会获取所有文件并使用 LINQ 进行过滤。


有关所用搜索模式的详细信息


如果文件夹中有很多文件,那么使用EnumerateFiles方法可能更有效


EnumerateFiles 和 GetFiles 方法的区别如下: 使用 EnumerateFiles 时,可以在返回整个集合之前开始枚举名称集合;使用 GetFiles 时,必须等待返回整个名称数组,然后才能访问该数组。因此,当您处理许多文件和目录时,EnumerateFiles 会更有效率。


查看完整回答
反对 回复 2022-12-24
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

您可以使用string.IndexOf检查文件名是否在第 4 个位置有“UCU” :


//string filename = "UCU";

if (file.FullName.IndexOf(filename) == 3)


查看完整回答
反对 回复 2022-12-24
  • 2 回答
  • 0 关注
  • 88 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号