如果图像已存在于文件夹中,如何重命名?

时间:2017-01-18 05:36:42

标签: c# asp.net winforms sql-server-2008

我正在开发桌面应用程序。在那我想要重命名保存在文件夹中的图像。如果在文件夹中图像是Img.jpg,那么下一次图像将是Img1.jpg。我尝试了一些代码,但我无法获得结果。

这是我的代码

string folderPath1 = "E:\\CoachingClassImages\\HeaderInfoImages\\Logo";
if (!Directory.Exists(folderPath1))
{
    Directory.CreateDirectory(folderPath1);
}


//Save the file in folder
int count = 1;
string file = "E:\\CoachingClassImages\\HeaderInfoImages\\Logo" + logo_picname;
string extention=Path.GetExtension("jpeg|*.jpg|bmp|*.bmp|all files|*.*");
string fileLocation1 = file;
if (File.Exists(file))
{
    System.GC.Collect();
    System.GC.WaitForPendingFinalizers();

    string tempFileName = string.Format("{0}({1}){2}", logo_picname, extention, count++);

    File.Copy(fileLocation1, Path.Combine("E:\\CoachingClassImages\\HeaderInfoImages\\Logo", Path.GetFileName(tempFileName)), true);
}
else
{
    File.Copy(fileLocation1, Path.Combine("E:\\CoachingClassImages\\HeaderInfoImages\\Logo", Path.GetFileName(logo_location)), true);
}

2 个答案:

答案 0 :(得分:0)

问题在于文件名,在您的情况下,您按照logo_picname - extention - count的顺序指定值,这将生成文件名{{1 }}。这是因为String.Format`遵循基于零的索引。您必须按所需顺序指定参数。还有一件事我不知道你试图得到文件的扩展名,无论如何,源文件和目标文件的扩展名应该相同,这样你就应该从源文件中获取扩展名

所以你应该这样使用:

Img(.jpg)3

答案 1 :(得分:-1)

使用逻辑

4.When u got the array with numbers take Lenght(); of that array 

5.Finally when u r creating a new file call this funtion and get the number on files in the folder which has same name and Lenght()+1 and
U are Done ! 


**I Hope You Will Understand my Logic . :)**

//你会得到一系列这样的数字,具体取决于你的数字     文件夹中文件的编号//
myNew [] = {1,2,3,4,5,6等等 }

<?php foreach($classes as $class) { ?>
   <option value="<?php echo $class->classesID; ?>" <?php echo set_select('class', $class->classesID); ?>>
      <?php echo $class->classes; ?>
   </option>
<?php } ?>