Datei aus einem Ordner löschen
dw
- asp.net
0 Viennamade0 dw0 Viennamade0 dw0 Viennamade0 dw0 dw
hi,
wie kann man mit asp oder js eine bestimmte datei(bild) aus einem ordner löschen?
schon ma danke!!
Hallo!
wie kann man mit asp oder js eine bestimmte datei(bild) aus einem ordner löschen?
Mit der delete-Methode des filesystemobject, also
object.Delete (force)
Wenn force true ist, dann wird auch gelöscht wenn das Objekt read-only ist. Default für force ist false.
Beste Grüße
Viennamde
Hallo,
ich hab das jetzt so gemacht, doch ich bekomme den Fehler:
Kompilierungsfehler in Microsoft VBScript- Fehler '800a0415'
Literalkonstante erwartet
/Mailsystem/ownhome_bearbeiten.asp, line 27
const extension = "/" & Request.QueryString("BName") & ".*"
-----------------------------------------------------------^
und das ist der code:
...
if Request.QueryString("delete") <> "" then
const delete = FALSE
const extension = "" & Request.QueryString("BName") & ".*" <--ZEILE 27
const conSourcePath = "users"
strPhysSourcePath = Server.MapPath(conSourcePath) & extension
set FileObjekt = Server.CreateObject("Scripting.FileSystemObject")
FileObjekt.DeleteFile strPhysSourcePath
end if
...
was an dem code falsch, könnt ihr mir sagen was ich machen soll damit es funktioniert...?
Hallo!
/Mailsystem/ownhome_bearbeiten.asp, line 27
const extension = "/" & Request.QueryString("BName") & ".*"
-----------------------------------------------------------^
Das bedeutet, daß Du eine Konstante nur so bauen kannst:
1. const bla = "Blauwurst"
2. const bla = "Blauwurst" & vblf
Aber nicht:
const bla = "Blauwurst" & blabla
... Also keine Variablen in eine Konstante reintung.
Beste Grüße
Viennamade
... Also keine Variablen in eine Konstante reintung.
Wie bekomm ich das dann hin, in einem ordner wo 100te von Dateien sind nur eine zu löschen. ich will immer die datei löschen die gerade im "Request.QueryString("BName")" ist und egal welche endung sie hat, also ".*"
... Also keine Variablen in eine Konstante reintung.
Wie bekomm ich das dann hin, in einem ordner wo 100te von Dateien sind nur eine zu löschen. ich will immer die datei löschen die gerade im "Request.QueryString("BName")" ist und egal welche endung sie hat, also ".*"
Hallo,
anhand Deines Beispielcodes erkenne ich nirgends, wofür die (falsche) Konstante delete eigentlich ist. Wie auch immer.
Zuerst mußt Du mal _alle_ Dateien eines Ordners durchlaufen können. Ein Beispiel (das untere der beiden ist VBScript):
http://msdn.microsoft.com/library/en-us/script56/html/jscolfiles.asp
Du brauchst aber einen 2 Funktionsparameter um die zu löschende Datei zu übergeben, also:
Function ShowFolderList(folderspec,filetodelete)
So, und innerhalb der for/each-Schleife vergleichst Du, ob die aktuelle Datei (f1.name) dem Muster "zulöschendeDatei.*" entspricht.
Wenn ja, dann: Schuß!
Beste Grüße
Viennamade
Danke erstma für deine Hilfe!!!
aber irgendwie versteh ich das noch nicht ganz, ich hab jetzt den code und so, nur es funktioniert immer noch nicht, passiert einfach nichts. was ist da los?
jetziger code:
if Request.QueryString("delete") <> "" then
[VBScript]
filetodelete = Request.QueryString("BName")
const folderspec = "users"
Function ShowFolderList(folderspec,filetodelete)
Dim fso, f, f1, fc, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(folderspec)
Set fc = f.Files
For Each f1 IN fc
s = s & f1.Name
if s = (Request.QueryString("BName")) then |
const conSourcePath = "users" |
strPhysSourcePath = Server.MapPath(conSourcePath) | Datei löschen?
fso.DeleteFile strPhysSourcePath |
end if |
s = s & "<BR>"
Next
ShowFolderList = s
End Function
end if
oder hab ich jetzt beim code etwas falsch gemacht?
MFG dw
Danke erstma für eure Hilfe!!!
aber irgendwie versteh ich das noch nicht ganz, ich hab jetzt den code und so, nur es funktioniert immer noch nicht, passiert einfach nichts. was ist da los?
jetziger code:
if Request.QueryString("delete") <> "" then
<%
[VBScript]
filetodelete = Request.QueryString("BName")
const folderspec = "users"
Function ShowFolderList(folderspec,filetodelete)
Dim fso, f, f1, fc, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(folderspec)
Set fc = f.Files
For Each f1 IN fc
s = s & f1.Name
if s = (Request.QueryString("BName")) then |
const conSourcePath = "users" |
strPhysSourcePath = Server.MapPath(conSourcePath) | Datei löschen?
fso.DeleteFile strPhysSourcePath |
end if |
s = s & "<BR>"
Next
ShowFolderList = s
End Function
end if
%>
oder hab ich jetzt beim code etwas falsch gemacht?
MFG dw
Hallo,
jetziger code:
if Request.QueryString("delete") <> "" then
<%
[VBScript]
filetodelete = Request.QueryString("BName")
const folderspec = "users"
Function ShowFolderList(folderspec,filetodelete)
Dim fso, f, f1, fc, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(folderspec)
Set fc = f.Files
For Each f1 IN fc
Hier: f1 ist die aktuelle Datei der Schleife. Also ist in f1.Name der Name der Datei drinnen, den mußt Du mit filetodelete vergleichen.
s = s & f1.Name
Diese Zeile bringt Dir nichts, sie dient im MS-Beispiel nur im Anschluß die Dateistruktur des Ordners auszugeben.
if s = (Request.QueryString("BName")) then |
const conSourcePath = "users" |
strPhysSourcePath = Server.MapPath(conSourcePath) | Datei löschen?
fso.DeleteFile strPhysSourcePath |
end if |s = s & "<BR>"
Next
ShowFolderList = s
End Functionend if
%>oder hab ich jetzt beim code etwas falsch gemacht?
Ein korrektes Beispiel:
Ein Sub, welches eine Funktion "ShowFolderList" aufruft. Als Parameter werden dieser Funktion die zu löschende Datei "styleswitcher.js" und der Ordner übergeben indem sich die Datei befindet "d:\fbn".
Sub x()
d = ShowFolderList("d:\fbn", "styleswitcher.js")
End Sub
Und jetzt die Funktion:
Function ShowFolderList(folderspec, FileToDelete)
Dim fso, f, f1, fc, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(folderspec)
Set fc = f.Files
For Each f1 In fc
^^^^ Durchlaufe alle Dateien im Ordner
If f1.Name = FileToDelete Then
^^^^ Wenn aktueller Dateiname gleich Name der zu löschenden Datei
Debug.Print f1.Name
^^^^ Drucke den Namen ins Debug-Fenster (du mußt das durch den Löschbefehl ersetzen.
End If
Next
ShowFolderList = s
End Function
Beste Grüße
Viennamade
Sub x()
d = ShowFolderList("d:\fbn", "styleswitcher.js")
End SubUnd jetzt die Funktion:
Function ShowFolderList(folderspec, FileToDelete)
Dim fso, f, f1, fc, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(folderspec)
Set fc = f.Files
For Each f1 In fc
^^^^ Durchlaufe alle Dateien im Ordner
If f1.Name = FileToDelete Then
^^^^ Wenn aktueller Dateiname gleich Name der zu löschenden Datei
Debug.Print f1.Name
^^^^ Drucke den Namen ins Debug-Fenster (du mußt das durch den Löschbefehl ersetzen.
End IfNext
ShowFolderList = s
End Function
Danke, aber ich habs jetzt so gelöst:
const path="users"
path2 = Server.MapPath(path)
filetodelete = Request.QueryString("BName")
set FolderObjekt = CreateObject("Scripting.FileSystemObject")
set ListFolder = FolderObjekt.GetFolder(path2)
For Each FileName IN ListFolder.Files
if FileName.Name = filetodelete then
FileName.Delete
end if
Next
..weil er bei dem obigen code in die function reinging, nur jetzt kann ich ihm nicht sagen das er die datei löschen soll: "diezulöschendedatei.*" sondern nur: "diezulöschendedatei.jpg" kann man das irgendwie hinbekommen? das die extension egal ist?
DANKE für dein HILFE!!
..weil er bei dem obigen code in die function reinging, nur jetzt kann ich ihm nicht sagen das er die datei löschen soll: "diezulöschendedatei.*" sondern nur: "diezulöschendedatei.jpg" kann man das irgendwie hinbekommen? das die extension egal ist?
hab schon hinbekommen, hab einfach gesagt das man "jpg" und "gif" Dateien hochladen kann, also zum löschen brauch ich dann nur noch zwei konstanten:
const extension1 = ".jpg" <-- 1. Konstante
const extension2 = ".gif" <-- 2. Konstante
const path="users"
path2 = Server.MapPath(path)
filetodelete1 = Request.QueryString("BName") & extension1
filetodelete2 = Request.QueryString("BName") & extension2
set FolderObjekt = CreateObject("Scripting.FileSystemObject")
set ListFolder = FolderObjekt.GetFolder(path2)
For Each FileName IN ListFolder.Files
if FileName.Name = filetodelete1 or FileName.Name = filetodelete2 then <-- if 1. konstante oder 2. konstante then
FileName.Delete
end if
Next