Já baixei os vídeos do PDC2008 e agora eu vou assistir…
… hum, qual arquivo escolho? O BB37.WMV ou o PC53.WMV? Pois é, se você baixou mais de um arquivo (baixei tudo, deu mais de 60Gb… baixei faz tempo, é verdade, mas só agora estou organizando o disco para gravar isso tudo em DVD), deve ter percebido o nome muito explicativo deles. Pois não é que olhando melhor o diretório, percebemos que o título do arquivo tem o nome (quase) perfeito?
Meu primeiro desafio como desenvolvedor foi verificar se existia um suporte nativo no .NET 3.5 para que essa informação seja acessada. Não tem ou se tem é tão bem escondida que eu não achei nem no MSDN e nem no Google…
Eis que começo a procurar um jeito e não encontro, não encontro, não encontro… Até que encontrei pesquisando no Google () um jeito de acessar essa informação através do componente COM Shell32. Vou ser sincero, sou um ignorante em Shell32…
Minha missão agora era acessar de forma programática a informação no título do arquivo e renomear o arquivo com esse nome…
Pois foi isso que o bloco de código abaixo fez e me ajudou muito… detalhe, os arquivos do MIX2008 estão do mesmo jeito… hehehe
Sub Main()
Dim objShell As Shell
Dim objFolder As Folder
Const Pasta As String = _
"C:\Documents and Settings\mchila\Desktop\PDC2008\"
objShell = New Shell
objFolder = objShell.NameSpace _
("C:\Documents and Settings\mchila\Desktop\PDC2008\")
If (Not objFolder Is Nothing) Then
Dim objFolderItem As FolderItem
Dim minhaPasta As New IO.DirectoryInfo(Pasta)
For Each Arquivo As IO.FileInfo In minhaPasta.GetFiles
objFolderItem = objFolder.ParseName(Arquivo.Name)
If (Not objFolderItem Is Nothing) Then
Dim szItem As String
szItem = objFolder.GetDetailsOf(objFolderItem, 10) _
.Replace(":", "-").Replace("""", "") _
.Replace("?", "").Replace("´", " ")
Arquivo.CopyTo _
(Pasta & szItem & Arquivo.Extension, True)
End If
Next
objFolderItem = Nothing
End If
objFolder = Nothing
objShell = Nothing
Console.WriteLine("Pronto")
End Sub
Pois bem, era isso.. só isso… não vou explicar o código, acho que não precisa… se alguém souber de alguma solução mais elegante, me avisa…
Abraços…
Chilá!@!