Newsgroup: it.comp.lang.visual-basic
Titolo: Separare Path dal Filename nell'OpenFileDialog

Cliccando su un OpenFileDialog ottengo su OpenFileDialog1.Filename
il nome completo del File, incluso tutto il Path.
Se voglio ottenere solo il nome allora lo ottengo in 
OpenFileDialog1.SafeFileName.
E se voglio solamente il Path, come lo ottengo ? Non riesco a trovarlo.

"john" ha scritto

...ehi, lì... in quel bicchier d'acqua... mi senti ? :-)))
Ti dò un suggerimento: se 3+2=5, allora 5-2=3 ;-)
Bye, G. 

 ha scritto nel messaggio 
news:i7i9e1$d9j$1...@nnrp.linuxfan.it...

http://msdn.microsoft.com/it-it/library/system.io.path_methods.aspx
 

 
sicché OFD1.Filename - OFD1.SafeFileName mi darebbe il Path....bella 
come barzelletta...

 
http://msdn.microsoft.com/it-it/library/system.io.path_methods.aspx
Grazie, ma nemmeno uno degli esempi funziona. Uso VB Express edition 2010.

Ciao john,

Cosa c'è che non ti basta in questo?
http://msdn.microsoft.com/it-it/library/system.io.path.getfilename.aspx
.m
-- 
Mauro Servienti
{C67C0157-5D98-4733-A75E-93CAEE4BADC8}
Microsoft MVP - Visual C# / MCTS
http://mvp.support.microsoft.com
blog @ 
http://milestone.topics.it
whynot [ at ] topics [ dot ] it

Ciao john,

o meglio ancora:


 o meglio ancora:
http://msdn.microsoft.com/it-it/library/system.io.path.getdirectoryname.aspx
.m


"john" ha scritto

Operazioni con le stringhe no, eh ? Left$, Mid$, Right$, Len...
Ah, questi ggggggiovani d'oggi :-(.
left$(OFD1.Filename, len(OFD1.Filename) - len(OFD1.SafeFileName))
giusto come esempio buttato lì.
Bye, G. 


Non che avessi dubbi, perchè li uso in continuazione, ma per scrupolo
ho provato anch'io con la versione Express gli esempi di
"Path.GetDirectoryName" e "Path.GetFileNam" e naturalmente funzionano
alla perfezione.
Voglio sperare che il problema non sia semplicemente che non hai fatto
l'import corretto, anche perchè te lo suggerisce l'IDE da sola...


Per carità, non consumiamo un neurone più del necessario per
interpretare il concetto di "sottrazione":
OFD1.Filename.Replace(OFD1.SafeFileName, String.Empty)
Comunque il metodo più corretto è quello suggerito da Alcibiade...

 Bye, G.
scusa, ma ti sembra una soluzione 'professionale' questa ? estrarre 'a 
mano' un path da una operazione sulla stringa ?
di subroutine fatte così in rete ce n'è a bizeffe, ekkekakkio.
I vari Path.Getdirectory et alia,  *quelle* mi aspetto come soluzioni.
Se funzionassero. Ma non mi funzionano. Quando avrò scoperto il perchè, 
lo pubblicherò.

 
Comunque estrarre il path da un filename è una cosa talmente basilare 
che non dovrebbe nemmeno essere necessario 'importare' delle classi.
Dovrebbe semplicemente esistere come metodo anche in un OpenFileDialog e 
in tutte le classi che hanno a che fare con filenames.
Dovrebbe essere talmente basilare come trovare la toilette in una casa.
Ma già, da dei compiler-designers che prevedono centinaia di metodi per 
la classe RichTextBox, alcuni dei quali veramente utili, come 
RichTextBox.Savefile, e poi si 'dimenticano' il RichTextBox.Print.......

 RichTextBox.Savefile, e poi si 'dimenticano' il RichTextBox.Print.......
Ancora con sta faccenda?!?

 I vari Path.Getdirectory et alia,  *quelle* mi aspetto come soluzioni.
...dicevo, certo che se tu avessi specificato che usavi .NET,
con l'apposito tag nel subject, uno avrebbe potuto indirizzarti
meglio, che dici ? Come ti hanno gią detto, .NET ha delle
funzioni native per queste cose. *MA* se tu non lo specifichi...
Bye, G.

 
Mi dispiace. Certe cose non mi sono 'ovvie'. Pensavo che oramai qui by 
default 'pensano' tutti prioritariamente in .NET e poi in VB.

 Ancora con sta faccenda?!?
Sì. Mi sta ancora sul ka§§o che io posso printare solo grazie al buon 
cuore di un utente di questo NG.
Penserei che, dal punto di vista di un compiler designer, 'vestire' con 
un wrapper un  testo con controlli per un rtf su hard disk oppure sulla 
standard printer device comportasse lo stesso sforzo.
Ma per lo user fa una enorme differenza.
Nemmeno la Classe 'PrintCtrl' datami gentilmente è triviale.
Per contro, .NET, nonostante gli indiscutibili vantaggi e miglioramenti 
rispetto al VB6, è pieno zeppo di redundancies e metodi stupidi che 
magari non serviranno mai a nessuno.
La prossima volta che me ne capita uno sotto gli occhi, lo segnalerò.

 La prossima volta che me ne capita uno sotto gli occhi, lo segnalerò.
sarebbe il caso.


 default 'pensano' tutti prioritariamente in .NET e poi in VB.
Il mio newsreader mi segnala che hanno appena aperto un nuovo NG
in lingua tedesca: de.comp.lang.vbclassic... in compenso, l'ennesima
discussione per il NG it.comp.dotnet mi dicono vada ancora a rilento.
Bye, G.

discussione per il NG it.comp.dotnet mi dicono vada ancora a rilento.
Il Vbclassic è duro a morire, per fortuna.
--
ciao
  Stefano