private static void LimparLocal(string dir) { string tipo; if (!Directory.Exists(dir)) { return; } string[] arquivos = Directory.GetFiles(dir); foreach (string arquivo in arquivos) { tipo = GetTipo(arquivo); if (!ListaLocaisGuardarAquivo.Contains(tipo)) { if (PerguntarArquivoPodeSerMovido(tipo, arquivo)) { PerguntarOndeGuardarAquivo(tipo); } else { ListaLocaisGuardarAquivo.Add(tipo, ListaLocaisGuardarAquivo.NAO_ORGANIZAR); } } if (ArquivoPodeSerMovido(tipo)) { if (!ArquivoEstaNoLugarCorreto(tipo, arquivo)) { MoverArquivo(tipo, arquivo); } } } }
private static void MoverArquivo(string tipo, string arquivo) { try { string LocalDestino = ListaLocaisGuardarAquivo.Get(tipo); if (!Directory.Exists(LocalDestino)) { Directory.CreateDirectory(LocalDestino); } string nome = arquivo.Split('\\').Last().Split('.').First(); int i = 0; while (File.Exists($"{LocalDestino}\\{nome}{(i > 0 ? $"({i})" : "")}.{tipo}")) { i++; } File.Move(arquivo, $"{LocalDestino}\\{nome}{(i > 0 ? $"({i})" : "")}.{tipo}"); } catch { } }
private static void PerguntarOndeGuardarAquivo(string tipo) { FolderBrowserDialog fbd = new FolderBrowserDialog(); fbd.Description = $"Guardar arquivos .{tipo} em:"; if (fbd.ShowDialog() == DialogResult.OK) { ListaLocaisGuardarAquivo.Add(tipo, fbd.SelectedPath); if (!ListaLocaisOrganizar.Contains(fbd.SelectedPath)) { DialogResult dr = MessageBox.Show( $"Você gostaria de verificar ser os arquivos dentro deste diretório estão organizados também?", $"Adicionar diretório", MessageBoxButtons.YesNo ); if (dr == DialogResult.Yes) { ListaLocaisOrganizar.Add(fbd.SelectedPath); } } } }
private static bool ArquivoEstaNoLugarCorreto(string tipo, string arquivo) { return(arquivo.StartsWith(ListaLocaisGuardarAquivo.Get(tipo))); }
private static bool ArquivoPodeSerMovido(string tipo) { return(ListaLocaisGuardarAquivo.Get(tipo) != ListaLocaisGuardarAquivo.NAO_ORGANIZAR); }