2017-02-17 2 views
0

Я использую приведенный ниже код, чтобы скопировать файл в сетевое расположение и сохранить информацию о файле в базе данных доступа.Переименование файлов при сохранении в местоположении

Dim SqlString1 As String = "INSERT INTO document (incidentid, documentno, documentname, documentpath) VALUES (@incid, @docid, @FileName, @FilePath)" 
    Using conn As New OleDbConnection(ConnString) 
     conn.Open() 
     If Me.TextBox1.Text <> "" Then 
      'THIS WILL SAVE THE FILE TO A LOCATION  
      Dim fileLocation As String = OpenFileDialog1.FileName 
      File.Copy(fileLocation, Path.Combine("\\10.1.10.5\NonConformance\Document\", Path.GetFileName(fileLocation)), True) 
      'THIS WILL SAVE A FILE PATH TO THE ACCESS DB 
      Using cmd As New OleDbCommand(SqlString1, conn) 
       'cmd.CommandType = CommandType.Text 
       cmd.Parameters.AddWithValue("@incid", doc1.Text) 
       cmd.Parameters.AddWithValue("@docid", doc2.Text) 
       cmd.Parameters.AddWithValue("@FileName", Path.GetFileName(Me.OpenFileDialog1.FileName)) 
       cmd.Parameters.AddWithValue("@FilePath", "\\10.1.10.5\NonConformance\Document\" & Path.GetFileName(Me.OpenFileDialog1.FileName)) 
       cmd.ExecuteNonQuery() 
       conn.Close() 
      End Using 
     End If 
     conn.Close() 
    End Using 

Я обеспокоен тем, что если пользователь загружает файл с таким же именем, как один уже в папке будет вызывать проблемы при попытке получить информацию на более поздний срок.

Так может кто-нибудь сказать мне, как переименовать файл при копировании его в сетевое расположение. В идеале я хотел бы переименовать его, чтобы быть @ incid_ @ параметры DocId

+0

Возможно, вам также понадобится некоторая обработка ошибок, чтобы неправильно обрабатывать ошибки. –

+0

На самом деле я бы переименовал файл. Единственный риск - проверка существующего файла, и у вас будет такая же проблема с копией, как с переименованием, если она существует, и вы можете проверить ее с помощью File.exists(). Thread on File Rename: http://stackoverflow.com/questions/19150333/how-to-rename-a-file-in-net – djangojazz

+1

File.Copy должен копировать с собственным именем вместо переименования после. Вы можете посмотреть, существует ли имя файла и добавить к нему суффикс. Или просто добавьте временную метку ко всем файлам, так что вам даже не нужно искать, есть ли дубликат. Меня беспокоит, что вы устанавливаете переменную fileLocation, но вы не используете ее во второй раз! –

ответ

0

Я в конечном итоге изменения элемента

Path.GetFileName(fileLocation)) 

читать

Path.GetFileName("INC" & Label6.Text & "DOC" & doc2.Text & ".pdf") 

Это позволит решить проблему для меня, спасибо для ответов.

Смежные вопросы