C# 需要在c中更新图像文件#
我在一个大文件夹中有800-1000个唯一命名的文件夹C# 需要在c中更新图像文件#,c#,asp.net,vb.net,c#-4.0,C#,Asp.net,Vb.net,C# 4.0,我在一个大文件夹中有800-1000个唯一命名的文件夹 在每个唯一命名的文件夹中,还有一个名为/images的文件夹 每个图像文件夹中都有一个名为“摇滚明星网站设计-{UNIQUEFOLDERNAME}-ca logo.png”的文件 我编写了一个代码来替换我提供的.png文件中的所有.png文件(同时保留原始名称) 文件夹结构和文件名需要保持不变。基本上,我用一个新文件更新旧文件,使用相同的(唯一的)名称,800-1000次 我尝试过的代码工作正常,但有一个错误。图像文件夹中有大量图像,但我只
private List<String> DirSearch(string sDir)
{
List<String> files = new List<String>();
try
{
foreach (string f in Directory.GetFiles(sDir))
{
files.Add(f);
}
foreach (string d in Directory.GetDirectories(sDir))
{
files.AddRange(DirSearch(d));
}
foreach (var file in files)
{
if (!string.IsNullOrWhiteSpace(file))
{
File.Copy(Server.MapPath("ca-logo.jpg"), file,true);
}
}
}
catch (System.Exception excpt)
{
//MessageBox.Show(excpt.Message);
}
return files;
}
私有列表目录搜索(字符串sDir)
{
列表文件=新列表();
尝试
{
foreach(Directory.GetFiles(sDir)中的字符串f)
{
添加(f);
}
foreach(Directory.GetDirectories(sDir)中的字符串d)
{
AddRange(DirSearch(d));
}
foreach(文件中的var文件)
{
如果(!string.IsNullOrWhiteSpace(文件))
{
Copy(Server.MapPath(“ca logo.jpg”),File,true);
}
}
}
捕获(系统异常excpt)
{
//MessageBox.Show(除消息外);
}
归还文件;
}
您可以使用它来获取基于正则表达式的文件
Directory.GetFiles(sDir, "Rock-Star*.png");
Rock Star*.png表示以Rock Star开头的文件,*表示以.png结尾的任何字符或字符序列。您可以使用它来获取基于正则表达式的文件
Directory.GetFiles(sDir, "Rock-Star*.png");
Rock Star*.png表示以Rock Star开头的文件,*表示以.png结尾的任何字符或字符序列。首先使用
path.GetFileName()
从文件完整路径获取文件名。然后使用StartsWith()
。将文件添加到列表时,请检查文件名是否以所需名称开头,然后添加到列表中
List<String> files = new List<String>();
foreach (string f in Directory.GetFiles(""))
{
//Get file name from full file path
string fileName = Path.GetFileName(f);
//Get only the files starts with Rock-Star
if (fileName.StartsWith("Rock-Star"))
{
files.Add(f);
}
}
编辑
要获取所有子目录中的文件并进行替换,请将SearchOption.AllDirectories
传递给GetFiles()方法。下面的代码将在所有子目录中搜索扩展名为.png
的文件
foreach (string f in Directory.GetFiles(sDir, "*.png", SearchOption.AllDirectories))
首先使用
path.GetFileName()
从文件完整路径获取文件名。然后使用StartsWith()
。将文件添加到列表时,请检查文件名是否以所需名称开头,然后添加到列表中
List<String> files = new List<String>();
foreach (string f in Directory.GetFiles(""))
{
//Get file name from full file path
string fileName = Path.GetFileName(f);
//Get only the files starts with Rock-Star
if (fileName.StartsWith("Rock-Star"))
{
files.Add(f);
}
}
编辑
要获取所有子目录中的文件并进行替换,请将SearchOption.AllDirectories
传递给GetFiles()方法。下面的代码将在所有子目录中搜索扩展名为.png
的文件
foreach (string f in Directory.GetFiles(sDir, "*.png", SearchOption.AllDirectories))
我有两张像rock star和rock star的图片…但是我想更新rock star…所以我应该做什么来区分大小写…同样的代码应该可以工作,上面的代码只会更新文件的大写名称“rock-Start”。它不会取代“摇滚明星”你说的对。同样的代码正在工作…现在我又遇到了一个问题…我有这样的文件夹结构:mainfolder>subfolder在这个子文件夹中有3个文件夹。1)css2)images3)php…通过使用这段代码,我只得到了css文件夹,但我想访问images文件夹。。。foreach(Directory.GetDirectories(sDir)中的字符串d){files.AddRange(DirSearch(d));}你说得对。同样的代码正在运行…现在我又遇到了一个问题。我有这样的文件夹结构:mainfolder>subfolder在这个子文件夹中有3个文件夹。1)css2)images3)php…通过使用此代码,我只得到了css文件夹,但我想访问images文件夹。。。foreach(Directory.GetDirectories(sDir)中的字符串d){files.AddRange(DirSearch(d));}我有两张像rock star和rock star…但是我想更新rock star…所以我应该如何区分大小写…同样的代码应该可以工作,上面的代码只更新大写名为“rock-Start”的文件。它不会取代“摇滚明星”你说的对。同样的代码正在工作…现在我又遇到了一个问题…我有这样的文件夹结构:mainfolder>subfolder在这个子文件夹中有3个文件夹。1)css2)images3)php…通过使用这段代码,我只得到了css文件夹,但我想访问images文件夹。。。foreach(Directory.GetDirectories(sDir)中的字符串d){files.AddRange(DirSearch(d));}你说得对。同样的代码正在运行…现在我又遇到了一个问题。我有这样的文件夹结构:mainfolder>subfolder在这个子文件夹中有3个文件夹。1)css2)images3)php…通过使用此代码,我只得到了css文件夹,但我想访问images文件夹。。。foreach(Directory.GetDirectories(sDir)中的字符串d){files.AddRange(DirSearch(d));}