webForumDet fria alternativet

copy

4 svar · 227 visningar · startad av LR^evil.sid

LR^evil.sidMedlem sedan maj 2002560 inlägg
#1

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]
pettssonMedlem sedan jan. 20021 122 inlägg
#2

ska det verkligen rad 2 i koden vara en kommentar?

LR^evil.sidMedlem sedan maj 2002560 inlägg
#3

båda kommentarerna har jag laggt till för att se vilken fil scritptet arbetar med.

.red [ stavar som en kratta :) ]

LR^evil.sidMedlem sedan maj 2002560 inlägg
#4

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 :stud

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]
LR^evil.sidMedlem sedan maj 2002560 inlägg
#5

men se! jag löste det själv. frågan är om det finns ett bättre sätt?

[red]
	else
		call renameFiles
	end if

	sub renameFiles ()
		dim slctFldr, fs, f, fc, i, c, orgFile, e, doLog, logFile

		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

			e = right ( i, len ( i ) - instrrev ( i, "." ) + 1 )
			i = left ( i, ( instrrev ( i, "." ) ) - 1 )

			i = replace ( i, "(", "[" )
			i = replace ( i, ")", "]" )
			i = replace ( i, "_", " " )
			i = replace ( i, ".", " " )

			if not orgFile = i & e then doLog = true else doLog = false

			select case doLog
				case true
					c.copy ( lcase ( i & e ) )
					fs.deletefile ( orgFile )

					logFile = logFile & "<table cellpadding = '0' cellspacing = '0' border = '0'>" & vbcrlf & _
						"	<tr>" & vbcrlf & _
						"		<td>#copied:&nbsp;</td>" & vbcrlf & _
						"		<td>" & right ( orgFile, len ( orgFile ) - instrrev ( orgFile, "\" ) ) & "</td>" & vbcrlf & _
						"		<td>&nbsp;&nbsp;-->&nbsp;&nbsp;</td>" & vbcrlf & _
						"		<td>" & right ( i, len ( i ) - instrrev ( i, "\" ) ) & e & "</td>" & vbcrlf & _
						"	</tr>" & vbcrlf & _
						"	<tr>" & vbcrlf & _
						"		<td>#deleted:&nbsp;</td>" & vbcrlf & _
						"		<td colspan = '3'>" & right ( orgFile, len ( orgFile ) - instrrev ( orgFile, "\" ) ) & "</td>" & vbcrlf & _
						"	</tr>" & vbcrlf
				case false
					if logFile = "" then
						logFile = logFile & "<table cellpadding = '0' cellspacing = '0' border = '0'>" & vbcrlf & _
							"	<tr>" & vbcrlf & _
							"		<td>#nothing renamed</td>" & vbcrlf & _
							"	</tr>" & vbcrlf & _
							"	<tr>" & vbcrlf & _
							"		<td>#nothing deleted</td>" & vbcrlf & _
							"	</tr>" & vbcrlf
						exit for
					else
						logFile = logFile & "<table cellpadding = '0' cellspacing = '0' border = '0'>" & vbcrlf & _
							"	<tr>" & vbcrlf & _
							"		<td>#file:&nbsp;</td>" & vbcrlf & _
							"		<td>" & right ( orgFile, len ( orgFile ) - instrrev ( orgFile, "\" ) ) & "</td>" & vbcrlf & _
							"		<td>&nbsp;&nbsp;was not copied</td>" & vbcrlf & _
							"	</tr>" & vbcrlf & _
							"	<tr>" & vbcrlf & _
							"		<td>#file:&nbsp;</td>" & vbcrlf & _
							"		<td>" & right ( orgFile, len ( orgFile ) - instrrev ( orgFile, "\" ) ) & "</td>" & vbcrlf & _
							"		<td colspan = '2'>&nbsp;&nbsp;was not deleted</td>" & vbcrlf & _
							"	</tr>" & vbcrlf
					end if
			end select
		next

		set fs = nothing

		logFile = logFile & "</table>"

		response.write logFile
	end sub[/red]
134 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)