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_ @文檔ID參數
您可能還需要一些錯誤處理,以處理複製不當的錯誤。 –
我其實會做文件重命名。唯一的風險是檢查一個現有的文件,如果它存在,並且您可以使用File.exists()進行檢查,那麼您將具有與重命名相同的問題。線程上的文件重命名:http://stackoverflow.com/questions/19150333/how-to-rename-a-file-in-net – djangojazz
File.Copy應複製一個正確的名稱,而不是重命名後。你可以看看文件名是否存在,並附加一個後綴。或者只是將時間戳附加到所有文件,這樣你甚至不需要查看是否有重複。它讓我感到困擾,你設置了變量fileLocation,但你不會再次使用它! –