Как переместить файлы один за другим и переименовать его из каталога в другой в vb.net

Для тех, кто осведомлен здесь, на vb.net, пожалуйста, помогите мне.

Я должен создать программу, которая перемещает изображения (в формате jpg) из одного каталога в другой, но перед этим он сначала переименует файл, а затем переместит его в папку назначения. Мне нужно это так, потому что каждый раз, когда он переименовывает файл, он будет сохранять в базе данных (MySQL)

У меня уже есть программа, которая перемещает все файлы JPG в другой каталог, но это не то, что мне нужно.

пожалуйста, мне нужна ваша экспертиза и коды.

я не так хорош в vb.net


Метод перемещения ОП из комментариев:

Dim sourceDirectory As String = TextBox1.Text 
Dim archiveDirectory As String = TextBox2.Text 
Try 
    Dim jpgFiles = Directory.EnumerateFiles(sourceDirectory, "*.jpg") 
    For Each currentFile As String In jpgFiles 
        Dim fileName = currentFile.Substring(sourceDirectory.Length + 1) 
        Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName)) 
    Next 
Catch e As Exception 
    Console.WriteLine(e.Message) 
End Try 

2 ответа

Решение

Если вы используете System.IO.File.Move у вас есть возможность переименовать файл одновременно с перемещением. Я не уверен, как вы определяете, каким будет новое имя файла, поэтому лучшее, что я могу предложить, - это посмотреть пример кода в приведенной мной ссылке MSDN.

Сверху Ссылка:

Перемещает указанный файл в новое место, предоставляя возможность указать новое имя файла.

File.Move ( sourceFileName As String, destFileName As String )

Добавлен пример, основанный на комментарии ОП, показывающий, как переименовать файл:

Dim sourceDirectory As String = TextBox1.Text
Dim archiveDirectory As String = TextBox2.Text
Try
    Dim jpgFiles = Directory.EnumerateFiles(sourceDirectory, "*.jpg")
    For Each currentFile As String In jpgFiles
        Dim fileName = Path.GetFileName(currentFile)
        Directory.Move(currentFile, Path.Combine(archiveDirectory, Path.GetFileNameWithoutExtension(fileName) & ".old"))
    Next
Catch ex As Exception
    Console.WriteLine(ex.Message)
End Try

Поскольку у вас есть код для перемещения файла в папку, я предложу функцию переименования для переименования файлов, которые вы переместили.

Rename(Application.StartupPath & "\Images\" & oldname.Text & "", Application.StartupPath & "\Images\" & newname.Text & "")

и просто для вашей функции знания копировать файлы из одного каталога в другой (вместо перемещения)

FileCopy(sourcefilename, destinationfilename)

надеюсь, это поможет вам

Другие вопросы по тегам