Oon tässä tekemässä ohjelmaa jolla saa poistettua kaikki ylimääräiset roskat koneelta(vb) , mutta tuli vaan pikku pulma, nimittäin millä komennolla saa poistettua? =(
Kill "c:\Turhatidosto.exe"
Tossa kai on jotain erroreita (semmosta kuullu) ettei aina toimi.. mut kyllä se mulla vaan wörkkii
Kiitti, enpä tullu ajatelleeks :D
kyl se toimii
tulipa tässä nyt mieleen et jos mulla on koneella esim semmonen biisi ku vaik pimputus.mp3, ja tiiän et se on c asemalla, mut en tiedä missä siellä ni miten sen sais etittyy sielt? (vb:llä tehdyn ohjelman kautta)
Ja jos nyt sattuisi käymään niin että sinun täytyisi poistaa kokonainen hakemisto niin se onnistuu näin:
RmDir "c:\Turhahakemisto"
hmm... mitä niinku meinaat tol hakemistolla? :D
ja tota mites se sit käy jos haluu poistaa niinku kokonaisen kansion ni pitääks siihen laittaa niinku C:\turhakansio.(mitä tähän?) .. vai miten se menee?
hakemisto on hakemisto? ne keltaset kansiot? Ohjelmointiputkassa on hyvä hakemisto tsekkaa sieltä. Vinkki ChDir & Dir.
EDIT: Ootko paljonki ite yrittäny noita vääntää? Käytä sitä Muokkaa-nappulaa, mmkay?
Siellä hakemistossa ei saa olla tiedostoja, katso
https://www.ohjelmointiputka.net/hak/?kieli=Visual Basic . Eli jos tahdot poistaa kansion ni poista eka tiedostot sit kansio.
Ps. en oo koodannu yhtään VB:llä :) (, joka osoittaa hyvin hakemiston tehokkuuden)
olen ja sen takia aattelin kysyy viisaimmiltani neuvoa.
eikä niinku millää pahalla mut ei toi RmDir... ainakaa kansioita poista.
joo pääs unohtumaan että siellä ei saa olla mitään tiedostoja kun se poistetaan.
Käytä ensin tota Kill käskyä poistamaan jokin turhatiedosto hakemistosta ja sitten jos tuo kyseinen hakemisto tyhjä (eli turha) voit poistaa sen komennolla rmdir.
Kannattaa kuitenkin tehdä jokin aliohjelma mikä tarkistaa ettet mene poistamaan mitään tärkeää tiedostoa.
DIR:illäkin löytyy , tässä API esimerkki tiedoston polun etsintään.
Private Declare Function SearchTreeForFile Lib "imagehlp" (ByVal RootPath As String, ByVal InputPathName As String, ByVal OutputPathBuffer As String) As Long Private Const MAX_PATH = 260 Private Sub Form_Load() Dim temppi As String, ret As Long temppi = String(MAX_PATH, 0) etsi$ = "VB6.EXE" For Sdrive = 67 To 69 'etsi C,D,E :ltä ret = SearchTreeForFile(Chr(Sdrive) & ":\", etsi$, temppi) If ret <> 0 Then MsgBox "File polussa " + Left$(temppi, InStr(1, temppi, Chr$(0)) - 1) Exit For End If Next If ret = 0 Then: MsgBox "Ei löytynyt!" End Sub
Juu kiitti, tollasta olin vähän ajatellukki. Mutta tota pystyykö tolla etsiä kansiota esim (e:\Uusi kansio)
ja jos voi niin miten?(ei onnistu vissiin tollasenaan) Ja tosta jutusta viel sen verran et jos haluun poistaa jonkin kansion sisällön tietämättä mitä siellä on, niin onko se mahdollista? (->ja sen jälkeen onnistuisi turhan kansion poisto)
..Ja tuota semmonen juttu vielä että kun ohjelma on etsinyt turhan tiedoston (tolla Tihan esimerkki ohjelmalla)
..niin miten sen saa niin että nappia painamalla kyseinen tiedosto poistuu? (napin koodiinhan se tulee ja varmaan kill komennolla mutta oisko kellään tarkempaa tietoa?)
Järkeäkin saa käyttää!
Tee yksi command buttoni ja yksi textboxi.
avaa vaikka notepad ja tallenna tiedosto nimellä testi.
Odota että ohjelma löytää tiedoston.
Paina command1:stä jolloin tiedosto poistuu
Private Sub Command1_Click() Kill (Text1.Text) End Sub Private Sub Form_Load() Dim temppi As String, ret As Long temppi = String(MAX_PATH, 0) etsi$ = "testi.txt" For Sdrive = 67 To 69 'etsi C,D,E :ltä ret = SearchTreeForFile(Chr(Sdrive) & ":\", etsi$, temppi) If ret <> 0 Then MsgBox "File polussa " + Left$(temppi, InStr(1, temppi, Chr$(0)) - 1) Text1.Text = Left$(temppi, InStr(1, temppi, Chr$(0)) - 1) Exit For End If Next If ret = 0 Then: MsgBox "Ei löytynyt!" End Sub
no tota vähän aattelinki mut ei sul oo tullu mieleen kokeilla tota.... siit nimittäin tulee error?
mulla ei tuu.
Tai tulee sen jälkeen kun tiedoston on poistanut.
herjaa sitä että kyseistä tiedostoa ei löydy.
Mitenköhän tuon saisi toimimaan niin että kun se löytää
löytää yhden tiedoston josta löytyy pääte .txt ohjelma lisää sen luetteloon ja jatkaa etsintää?
Olen kokeillut muutamalla tavalla mutta kun ei oikein onnistu..
Mulla se sillai tummentaa kääntövaiheessa tän: ret = SearchTreeForFile(Chr(Sdrive) ... mut en sit tiiä.
Tosiaan vois totakin juttuu miettii mitä sanoit. Sain jo kerran tehtyyn sellasen et se ettii koneelta kaikki .txt tiedostot... jotai semmostako meinasit?
Kyllä, ohjelma etsisi kaikki ".txt" päätteiset tiedostot ja listaisi ne.
Edit:
tuosta lähettämästäni koodista oli vanhingossa jäänyt puuttumaan nuo private declare function määrittelyt.
Kopioi ne alkuperäisestä koodista.
Juu tosiaan. :D miksen nyt tollasta tajunnu.
Private Declare Function SearchTreeForFile Lib "imagehlp" (ByVal RootPath As String, ByVal InputPathName As String, ByVal OutputPathBuffer As String) As Long Private Const MAX_PATH = 260 Private Sub Command1_Click() Kill (Text1.Text) End Sub Private Sub Form_Load() Dim temppi As String, ret As Long temppi = String(MAX_PATH, 0) etsi$ = "Testi.Txt" For Sdrive = 67 To 67 'etsi C,D,E :ltä ret = SearchTreeForFile(Chr(Sdrive) & ":", etsi$, temppi) If ret <> 0 Then Text1.Text = Left$(temppi, InStr(1, temppi, Chr$(0)) - 1) Exit For End If Next If ret = 0 Then: MsgBox "Ei löytynyt!" End Sub
Tossa on toimiva koodi.
Aihe on jo aika vanha, joten et voi enää vastata siihen.