jag försöker skriva en sida som döper om filnamn men något blir fel, antagligen annars skulle jag väl inte be er om hjälp,
[red] else
' response.write request ( "slctFldr" )[/red] --> [blue]D:\tmp[/blue][red]
call renameFiles
response.write "file(s) renamed"
end if
sub renameFiles ()
dim slctFldr, fs, f, fc, i, c, orgFile
slctFldr = request ( "slctFldr" )
set fs = server.createobject ( "scripting.filesystemobject" )
set f = fs.getfolder ( slctFldr )
set fc = f.files
for each i in fc
[/red]line 37 -->[blue] set c = getfile ( slctFldr & "\" & i )[/blue][red]
orgFile = i
i = replace ( i, "(", "[" )
i = replace ( i, ")", "]" )
i = replace ( i, "_", " " )
i = replace ( i, ".", " " )
' response.write slctFldr & "\" & i
c.copy ( slctFldr & "\" & i )
c.deletefile ( slctFldr & "\" & orgFile )
next
set fs = nothing
end sub[/red]
felmeddelande:
[red]Microsoft VBScript runtime (0x800A000D)
Type mismatch: 'getfile'
/renamer.asp, line 37[/red]
fixade det själv MEN det finns en gigantisk bug och ett problem.
bug: scriptet tar bort ursprungsfilerna. har inga filer kopierats har du ingen fil kvar i foldern
problem: filändelser i markeras ju med den sista punkten och det är ett av tecknen som ska ersättas med mellanslag.
fråga: hur gör jag för att behålla filendelsen?
[red] else
call renameFiles
response.write "file(s) renamed"
end if
sub renameFiles ()
dim slctFldr, fs, f, fc, i, c, orgFile
slctFldr = request ( "slctFldr" )
set fs = server.createobject ( "scripting.filesystemobject" )
set f = fs.getfolder ( slctFldr )
set fc = f.files
for each i in fc
set c = fs.getfile ( i )
orgFile = i
i = replace ( i, "(", "[" )
i = replace ( i, ")", "]" )
i = replace ( i, "_", " " )
i = replace ( i, ".", " " )
c.copy ( lcase ( i ) )
fs.deletefile ( orgFile )
next
set fs = nothing
end sub[/red]