All'interno di una texbox ho un percorso dove si trova un file, per esempio c:\pippo\prova.txt, ora dovrei prelevarmi solo il nome del file.Esiste qualche classe che fa una cosa del genere.
E' possibile sapere come si fa?
GRAZIE
All'interno di una texbox ho un percorso dove si trova un file, per esempio c:\pippo\prova.txt, ora dovrei prelevarmi solo il nome del file.Esiste qualche classe che fa una cosa del genere.
E' possibile sapere come si fa?
GRAZIE
Nessuno sa darmi una risposta?
SE io prendo un file in un percorso del tipo c:\prova\pippo.txt, dovrei mettere in una stringa solo pippo.txt
avrei bisogno solo di sapere se è possibile fare una cosa del genere, da un percorso covrei prendere solo il nome del file
Prova questa funzione
Private Function NomeFile(ByVal s As String) As String
Dim f As String
Dim sep As Integer
sep = InStrRev(s, "\")
f = s.Substring(sep)
Return f
End Function
response.write(NomeFile("c:\pippo\prova.txt"))
Fammi sapere
Ciao
Kalman
Kalman
System.IO.Path.GetFileName("C:\....\file.ext")
io ho fatto così:
dim NomeFile as string="C:\prova\pippo.txt"
dim pos as integer=nomefile.LastIndexOf("\")
NomeFile=Nomefile.substring(pos)
Però la cosa strana è che invece di restituirmi pippo.txt, mi restituisce \pippo.txt
PERCHE'
Non è stranoOriginariamente inviato da bluelions
io ho fatto così:
dim NomeFile as string="C:\prova\pippo.txt"
dim pos as integer=nomefile.LastIndexOf("\")
NomeFile=Nomefile.substring(pos)
Però la cosa strana è che invece di restituirmi pippo.txt, mi restituisce \pippo.txt
PERCHE'ma è perfettamente corretto. Tu gli dicesti di prenderti TUTTA la sottostringa che inizia con la prima ricorrenza del carattere \ da destra
perciò, o fai NomeFile=Nomefile.substring(pos + 1)
o segui i consigli di sms ed usi la classe path
![]()
Pietro
infatti ho fatto pos+1, però dal manuale si evince che la proprietà ListIndexOf sostituisce Instrv di VB6, se uso instrv il risultato è corretto mentre con questo no.
Allora mi domando.....in un certo senso non è la stessa cosa.
Cmq un altra cosa, la variable pos mi restituisce un valore del tipo &Hf2 e non un intero,nonostante l'ho dichiarata di tipo integer.
Nel manuale serio che ho io si legge che:Originariamente inviato da bluelions
infatti ho fatto pos+1, però dal manuale si evince che la proprietà ListIndexOf sostituisce Instrv di VB6, se uso instrv il risultato è corretto mentre con questo no.
Allora mi domando.....in un certo senso non è la stessa cosa.
Cmq un altra cosa, la variable pos mi restituisce un valore del tipo &Hf2 e non un intero,nonostante l'ho dichiarata di tipo integer.
Sebbene nella maggior parte dei casi sia possibile utilizzare i nuovi metodi per sostituire le funzioni vecchio stile, bisognerebbe fare attenzione alle sottili differenze che potrebbero rompere la compatibilità del codice:
1) IN VISUALBASIC.NET GLI INDICI DELLE STRINGHE HANNO SEMPRE BASE ZERO.
2) LasIndexOf ASSOMIGLIA A InStrRev, ma non gestisce le ricerche indipendenti da maiuscole e minuscole
****e così di seguito
e pos nel tuo codice dà 8 come deve essere e non &h2f che è il codice asc di "\"
![]()
Pietro
E' consigliabile utilizzare il codice consigliato da sms, è garantito ad esempio che funzionerebbe su altre piattaforme non windows dove il path separator è differente.