04. december 2008 - 14:09Der er
10 kommentarer og 1 løsning
Læg _1 til filnavnet, når der uploades filer med samme navn ?
Er igang med at lave et galleri i ASP.NET hvor jeg vil have lagt _1 + til i enden, af en fil der uploads med samme navn fks. nicebil.jpg > nicebil_1.jpg > nicebil_2.jpg ?
Min upload funktion ser pt. sådan her ud:
Function UploadFil(ByVal fileUpload1 As System.Web.HttpPostedFile, ByVal OutputPath As String) As Boolean
Dim strFileName As String Dim strLongFilePath As String
Kanon kalp ;D men glemte at skrive, jeg koder i VB og ikke C# og at det skal bruges på en hjemmeside, så forstår ikke lige helt det med "consol app" og hvordan jeg skal relatere det til det jeg har i forvejen, hvor jeg bruger OutputPath og fileUpload1 til at lave stien til filen og output'et ?
Vi være rart hvis du lige ville forklare det for mig kalp :)
test det af.. der er ikke så meget og sige. I min kode er dette den vigtige for dig. fileToCopy.CopyTo(dir + tmpfile)
som svarer til din
fileUpload1.SaveAs(OutputPath & strFileName)
Imports System.IO
Partial Class _Default Inherits System.Web.UI.Page Public Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim fileToCopy As New FileInfo("C:\xxxx\test.xml") Dim dir As String = "C:\xxxx\" If File.Exists(fileToCopy.FullName) Then Dim filename As String = Path.GetFileNameWithoutExtension(fileToCopy.FullName) Dim counter As Integer = 0 Dim tmpfile As String = String.Empty While (True) counter += 1 tmpfile = filename + "_" + counter.ToString() + Path.GetExtension(fileToCopy.FullName) If File.Exists(dir + tmpfile) = False Then Exit While End If End While fileToCopy.CopyTo(dir + tmpfile) End If End Sub End Class
Mange tak ;D nu virker det! har lavet det sådan her
If Not (fileUpload1 Is Nothing) Then If File.Exists(fileUpload1.FileName) Then Dim filename As String = Path.GetFileNameWithoutExtension(fileUpload1.FileName) Dim counter As Integer = 0 Dim strFileName As String = String.Empty
While (True)
counter += 1 strFileName = filename & "_" & counter.ToString() + Path.GetExtension(fileUpload1.FileName) If File.Exists(OutputPath & strFileName) = False Then Exit While End If
For at give mig point skal du markere mit navn i boksen nede i venstre hjørne:) Mit navn står i en boks som du kan trykke på. Efterfølgende trykker du bare på knappen "Accepter svar":)
I øvrigt kan jeg ikke se hele din kode.. Det ser i hvertfald ikke sådan ud. (programmere ikke VB.NET).
men jeg vil mene at din function ender med noget lignende: Public Function metodenavn() As Boolean
string fnm = @"C:\z.cs"; string first = Path.Combine(Path.GetDirectoryName(fnm), Path.GetFileNameWithoutExtension(fnm)); string last = Path.GetExtension(fnm); string tmpfnm = fnm; int n = 0; while (File.Exists(tmpfnm)) { n++; tmpfnm = first + "_" + n + last; } Console.WriteLine(tmpfnm);
og
Dim fnm As String = "C:\z.cs" Dim first As String = Path.Combine(Path.GetDirectoryName(fnm), Path.GetFileNameWithoutExtension(fnm)) Dim last As String = Path.GetExtension(fnm) Dim tmpfnm As String = fnm Dim n As Integer = 0 While File.Exists(tmpfnm) n += 1 tmpfnm = first & "_" & n & last End While Console.WriteLine(tmpfnm)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.