TYp i dos är det hur lätt som helst: När vi ändå är igång kankse det också går att ta bort de tre första tecknen i filnamnet? I mappen alltså - inte i fillistan. Det här är kanske lite overhead, men det är i alla fall en variant.... Detta funkar ju fint men jag undrar om jag uttryckte mig fel i frågan. Kan man i denna kod ta bort tre bokstäver i filernas namn, inte i den textfil de listas i? Det går att i DOS byta ut bokstäver på alla filer men inte ta bort ett givet antal. Jodå, det går alldeles utmärkt. Gjorde ett program för sånt åt en bekant för två år sen som kunde ta bort ett bestämt antal tecken, byta enskilda tecken eller strängar och lite annat. Då är nog File System Objekts bättre: Där jag skrev:Sv: Lista filnamn
Dir *.* > Fiillista.Txt
Eller om du vill appenda:
Dir *.* >> Fiillista.Txt
Eller en specefik mapp:
Dir C:\Music\Mp3\*.* > Fiillista.TxtSv: Lista filnamn
Sv: Lista filnamn
<code>
Private Sub Command1_Click()
'Referens till Microsoft Scripting Runtime krävs för FSO
Dim objFso As Scripting.FileSystemObject
Dim objFolder As Scripting.Folder
Dim objFile As Scripting.File
Dim objStream As Scripting.TextStream
Set objFso = New Scripting.FileSystemObject
Set objFolder = objFso.GetFolder("C:\MyFolder")
Set objStream = objFso.CreateTextFile("C:\MyFolder\Lista.txt")
' Loopa igenom alla filer i foldern
For Each objFile In objFolder.Files
' Här skapar du din lista
objStream.WriteLine objFile.Name
' Här i loopen kan du förändra namnen på dina filer om du vill
Next
objStream.Close
Set objFso = Nothing
Set objFolder = Nothing
Set objStream = Nothing
End Sub
</code>
mvh /ThomasSv: Lista filnamn
Sv: Lista filnamn
Loopa helt enkelt igenom alla filerna i mappen/mapparna, läs in var filnamn i en sträng, ta bort så många tecken du vill/ändra hur du vill, och kör Name GammaltFilnamn As NyttFilnamn. Kör igen för nästa fil i loopen.
Kom dock ihåg att lägga in felhantering för om du tar bort filändelser och så, annars kan det ju bli trista fel.
Lycka till.
/EESv: Lista filnamn
<code>
Private Sub Command1_Click()
'Referens till Microsoft Scripting Runtime krävs för FSO
Dim objFso As Scripting.FileSystemObject
Dim objFolder As Scripting.Folder
Dim objFile As Scripting.File
Set objFso = New Scripting.FileSystemObject
Set objFolder = objFso.GetFolder("C:\MyFolder")
' Loopa igenom alla filer i foldern
For Each objFile In objFolder.Files
' Här bytter filen namn
objFile.Name = Mid$(objFile.Name, 4)
Next
objStream.Close
Set objFolder = Nothing
Set objFso = Nothing
End Sub
</code>Sv: Lista filnamn
<br><br>
' Här i loopen kan du förändra namnen på dina filer om du vill
<br><br>
Så kan du förändra filernas namn med vanlig stränghantering.
<br><br>
ex.
<code>
objFile.Name = Mid$(objFile.Name, 4)
</code>
Om du har för avsikt att skapa listan i samma katalog som du läser i så måste du undanta den filen från namnbyte, för du kan inte ändra namnet på den filen som du just håller på att skriva till.
<br><br>
mvh /Thomas