Переименование копии изображения - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь создать альбом, и я хочу скопировать изображение с его исходного пути в определенную папку и переименовать (скопировать) сразу после этого.Вот фрагмент моего кода (обратите внимание, что «picturedir» - это путь):

    string PCname = Environment.UserName;
    Image File;
    OpenFileDialog openfile = new OpenFileDialog();
    openfile.InitialDirectory = @"C:\Users\" + PCname + @"\Pictures";
    if (openfile.ShowDialog() == DialogResult.OK)
    {
       try
       {
           File = Image.FromFile(openfile.FileName);
           pictureBox3.Image = File;

           pictureBox3.Image.Save(picturedir + "\\" + openfile.SafeFileName); 
           System.IO.File.Move(picturedir + "\\" + openfile.SafeFileName,
                               picturedir + "\\" + "1");
       }
       catch (Exception ex)
       {
           MessageBox.Show(ex.Message);
       }
    }

Как видно из последней строки внутри «try», я хочу переименовать выбранное изображение, просто1" .Однако в последней строке выдается ошибка «Невозможно создать файл, если этот файл уже существует».Любые идеи?

PS: Если я не использую последнюю строку "try": System.IO.File.Move(picturedir + "\\" + openfile.SafeFileName, picturedir + "\\" + "1"); копирует выбранную картинку, но, очевидно, не переименовывает ее вообще.

1 Ответ

0 голосов
/ 03 октября 2018

Здесь - статья о работе с файлами.

Из статьи:

static void Main()
{
    string fileName = "test.txt";
    string sourcePath = @"C:\Users\Public\TestFolder";
    string targetPath =  @"C:\Users\Public\TestFolder\SubDir";

    // Use Path class to manipulate file and directory paths.
    string sourceFile = System.IO.Path.Combine(sourcePath, fileName);
    string destFile = System.IO.Path.Combine(targetPath, fileName);

    // To copy a folder's contents to a new location:
    // Create a new target folder, if necessary.
    if (!System.IO.Directory.Exists(targetPath))
    {
        System.IO.Directory.CreateDirectory(targetPath);
    }

    // To copy a file to another location and 
    // overwrite the destination file if it already exists.
    System.IO.File.Copy(sourceFile, destFile, true);
}

Если вы используете разные имена файлов, вы получите копию с новым именем.

...