gianluca (Normal User)
Pro
Messaggi: 103
Iscritto: 23/06/2008
|
salve a tutti! ogni giorno ho una domanda da farvi! il problema di oggi è sapere se esiste 1 modo in VB.net per cercare 1 file nel pc nn sapendo in ke cartella sia! tipo il cerca in windows! So ke qualcuno lo sa! Pleaseeeeee aiutatemi! grazie 1000
ho trovato questo, ma mi blocca la scansione x i permessi! cm faccio x avere questi permessi?
questo è il codice!
Codice sorgente - presumibilmente VB.NET |
Public Class Form1 Private Function TrovaFileDaNome(ByVal NomeDelFileDaCercare As String) As String Dim Res As String = "" Dim Dischi() As String = IO.Directory.GetLogicalDrives Dim Cartelle() As String For i As Integer = 0 To Dischi.Length - 1 Try Cartelle = IO.Directory.GetDirectories(Dischi(i)) For j As Integer = 0 To Cartelle.Length - 1 Res = TrovaFileNellaCartella(NomeDelFileDaCercare, Cartelle(j)) If Res <> "" Then Return Res Next Catch ex As Exception MessageBox.Show(ex.Message) End Try Next Return Res End Function _________________________________________________ Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click TrovaFileDaNome("Prova.txt") End Sub
|
Ultima modifica effettuata da gianluca il 16/09/2008 alle 15:47 |
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Usi Vista? Dei avere i permessi di amministratore e non li puoi ottenere via codice. Potrebbe esserci l'opzione "Avvia come amministratore" nel menù contestuale.
Guarda i sorgenti di Iper Search Plus.
|
|
punkettone90 (Member)
Expert
Messaggi: 279
Iscritto: 16/05/2007
|
a meno che tu non faccia una scansione di rete nel tuo pc dovresti avere accesso a quasi tutte le cartelle (tranne alcune di sistema), altrimenti è perchè non hai i permessi e neanche tu hai la password per entrarci; ti consiglio di saltare quelle a cui non hai accesso usando le istruzioni (per il c#) try, catch, sono quelle che non ti fanno crashare il programma in caso di errori.
comunque tu hai capito cosa fa quel codice?
|
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Non sembra ricorsivo, anche perchè ne manca un pezzo. Se TrovaFileNellaCartella non è ricorsiva, non funzionerà.
|
|
gianluca (Normal User)
Pro
Messaggi: 103
Iscritto: 23/06/2008
|
questo è quello completo! ma non capisco cm funziona... o almeno, lo faccio iniziare ma mi dice ke non ho i permessi!
Codice sorgente - presumibilmente VB.NET |
Private Function TrovaFileDaNome(ByVal NomeDelFileDaCercare As String) As String Dim Res As String = "" Dim Dischi() As String = IO.Directory.GetLogicalDrives Dim Cartelle() As String For i As Integer = 0 To Dischi.Length - 1 Try Cartelle = IO.Directory.GetDirectories(Dischi(i)) For j As Integer = 0 To Cartelle.Length - 1 Res = TrovaFileNellaCartella(NomeDelFileDaCercare, Cartelle(j)) If Res <> "" Then Return Res Next Catch ex As Exception 'Return Res MessageBox.Show(ex.Message) End Try Next Return Res Label1.Text = Res End Function Private Function TrovaFileNellaCartella(ByVal NomeDelFileDaCercare As String, ByVal PercorsoCartella As String) As String Dim res As String = "" Dim Cartelle() As String Dim FileContenuti() As IO.FileInfo = New IO.DirectoryInfo(PercorsoCartella).GetFiles() For i As Integer = 0 To FileContenuti.Length - 1 If FileContenuti(i).Name.ToUpper = NomeDelFileDaCercare.ToUpper Then Return FileContenuti(i).FullName End If Next Cartelle = IO.Directory.GetDirectories(PercorsoCartella) For i As Integer = 0 To Cartelle.Length - 1 res = TrovaFileNellaCartella(NomeDelFileDaCercare, Cartelle(i)) If res <> "" Then Return res End If Next Return res End Function
|
il problema è ke io sto cercando di fare questo programma da passare alla mia classe e questo file viene salvato nei documenti! il problema è ke da me il percorso è
C:\Users\GIANLUCA\Documents
x uno ke si kiama diverso nn è cs! cm faccio a trovare la cartela documents??
un modo forse piu facile sarebbe cercare in C:\users se c'è una cartella ke contiene Documents
solo ke nn so cm iniziare! UFFFF
Cmq grazie a punkettone90 e al mitico Totem!
Ultima modifica effettuata da gianluca il 16/09/2008 alle 18:22 |
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Prima hai detto che non sai dove si trova il file, ora dici che è nella cartella documenti. Sei un po' indeciso?
Per ottenere il percorso dei documenti si usa My.Computer.FileSystem.SpecialDirectories.Documents.
Tieni conto che ci possono essere più file con lo stesso nome: quella funzione ne restituisce solo uno. Inoltre, mi sembra un po' eccessivo cercare in tutti i drivers del computer. Se non ti interessa riportare lo stato della ricerca, puoi usare queste poche righe:
Codice sorgente - presumibilmente Delphi |
Dim AllFiles As String() = IO.Directory.GetFiles("C:\", "*.*", IO.SearchOption.AllDirectories) For Each File As String In AllFiles If IO.Path.GetFileName(File).ToLower = "prova.txt" Then 'Questo è uno dei file validi End If Next
|
|
|
gianluca (Normal User)
Pro
Messaggi: 103
Iscritto: 23/06/2008
|
ho provato a scrivere qualcosa io ma non capisco ke ci sia di sbagliato...
ora sto solo cercando quale cartella è ke contiene documents, ma ho provato e non mi trova nulla! avete qualke consiglio o rimedio? grazie 100000 lo stesso
Codice sorgente - presumibilmente VB.NET |
Dim asd, Cartelle() As String Cartelle = IO.Directory.GetDirectories("C:\Users") For i As Integer = 0 To Cartelle.Length - 1 If IO.Directory.Exists("C:\Users\" & Cartelle(i) & "\Documenti") Then asd = Cartelle(i) Label1.Text = asd End If Next
|
Ultima modifica effettuata da gianluca il 16/09/2008 alle 19:26 |
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
L'array Cartelle() contiene il percorso COMPLETO di ogni cartella.
|
|
gianluca (Normal User)
Pro
Messaggi: 103
Iscritto: 23/06/2008
|
Ops, ho capito ora quello del My.Computer.FileSystem.SpecialDirectories.MyDocuments
non pensavo esistesse quella funzione! scusatemi tanto, la prox lvt dico tutto subito
grazie 10000
Ultima modifica effettuata da gianluca il 16/09/2008 alle 20:13 |
|