C# 如何以第四个字母开头?
我有个问题。我想通过单击按钮将“新建文件夹”中的特定文件复制到“目标”文件夹中。“新文件夹”中包含不同名称的各种文件。例如:“ABCU0001”,“abbUCA0003”,“HHUCU0012”,“aaaUCS0012”等等“新文件夹”包含1000多个文件,名称中有10个字母相同。我要复制10个文件,其名称必须为“UCU”。我不知道如何使用(startsWith)从第四个字母开始复制。 对不起,我语法不好C# 如何以第四个字母开头?,c#,winforms,visual-studio-2012,startswith,C#,Winforms,Visual Studio 2012,Startswith,我有个问题。我想通过单击按钮将“新建文件夹”中的特定文件复制到“目标”文件夹中。“新文件夹”中包含不同名称的各种文件。例如:“ABCU0001”,“abbUCA0003”,“HHUCU0012”,“aaaUCS0012”等等“新文件夹”包含1000多个文件,名称中有10个字母相同。我要复制10个文件,其名称必须为“UCU”。我不知道如何使用(startsWith)从第四个字母开始复制。 对不起,我语法不好 private void button1_Click(object sender, Eve
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”的文件将复制到目标文件夹。您可以使用以下命令检查文件名是否在第4位有“UCU”:
如果所有文件都在同一目录中(没有子目录),则可以使用以下方法获取所有文件:
//assuming diCopyForm is the new folder reference
// ? denotes 1 character while * is multiple chars
var files = diCopyForm.GetFiles("???UCU*");
然后把它们复制过来。对于更复杂的条件,我将获取所有文件并使用LINQ进行过滤
如果文件夹中有很多文件,那么使用该方法可能会更有效
EnumerateFiles和GetFiles方法的区别如下:
使用EnumerateFiles,可以开始枚举名称集合
在归还全部藏品之前;当您使用GetFiles时
必须等待返回整个名称数组,然后才能
访问阵列。因此,当您处理许多文件和
目录、枚举文件可以更高效
您需要复制包含UCU的精细名称吗??或者在位置4包含UCU??您好,先生,在位置4包含UCU
if(file.Name.StartsWith(filename))
-您不想检查全名,例如C:\MyFolder\…
以UCU
开头谢谢,先生,我已经将全名改为Name,现在可以使用此代码if(file.FullName.IndexOf(filename)==3)
//assuming diCopyForm is the new folder reference
// ? denotes 1 character while * is multiple chars
var files = diCopyForm.GetFiles("???UCU*");