Você está aqui: C# ::: Dicas & Truques ::: Arquivos e Diretórios

Usando o método GetDrives() da classe DriveInfo para retornar uma lista de drives no sistema

Quantidade de visualizações: 6582 vezes
Em algumas situações nós precisamos obter uma lista de drives no sistema. Isso pode ser feito com o auxílio do método estático GetDrives() da classe DriveInfo. Este método retorna um array (matriz) de objetos da classe DriveInfo, com cada elemento representando um dos drives encontrados. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

private void button1_Click(object sender, EventArgs e){
  // using System.IO;

  // vamos obter uma lista de drives no sistema
  foreach(DriveInfo di in DriveInfo.GetDrives()){
    MessageBox.Show("O nome deste drive é: " + di.Name);
  }
}

Ao executarmos este código teremos uma mensagem que será repetida umas 4 vezes, e a cada vez teremos uma letra representando um dos drives encontrados.

Veja agora como obter um resultado semelhante usando um laço for:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

private void button1_Click(object sender, EventArgs e){
  // using System.IO;

  // vamos obter uma lista de drives no sistema
  for(int i = 0; i < DriveInfo.GetDrives().Length; i++){
    // vamos obter o drive nesta posição da matriz
    DriveInfo di = DriveInfo.GetDrives()[i];
    
    // vamos mostrar o nome do drive
    MessageBox.Show("O nome deste drive é: " + di.Name);
  }
}


Link para compartilhar na Internet ou com seus amigos:

C# ::: Dicas & Truques ::: Arquivos e Diretórios

Como retornar a data e hora da criação de um diretório em C# usando a função GetCreationTime() da classe Directory

Quantidade de visualizações: 10 vezes
Nesta dica mostrarei como usar o método GetCreationTime() da classe Directory do C# para obter e retornar a data e hora da criação de um diretório. Note que o retorno de uma chamada a este método é um objeto da classe DateTime.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

using System;
using System.IO;

namespace Estudos {
  class Principal {
    static void Main(string[] args) {
      // caminho e nome do diretíro
      string diretorio = @"C:\estudos_csharp\imagens";

      DateTime data = Directory.GetCreationTime(diretorio);
      Console.WriteLine("Diretório criado em: {0}", data);

      Console.WriteLine("\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

Ao executar este código C# nós teremos o seguinte resultado:

Diretório criado em: 17/07/2022 22:09:12


C# ::: LINQ ::: LINQ to Objects

Como retornar o último elemento de um array de strings em C# usando a função Last() do LINQ

Quantidade de visualizações: 1122 vezes
Nesta dica mostrarei um exemplo bem simples do uso do método Last() do LINQ (Language-Integrated Query) do C# para retornar o último elemento de um vetor de strings.

É claro que este método funciona com qualquer coleção, mas um exemplo simples nos ajudará a entender melhor o seu funcionamento. Em outras dicas eu aprofundo o uso deste método.

Vamos ao código então. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

using System;
using System.Linq;

namespace Estudos {
  class Principal {
    static void Main(string[] args) {
      // vamos construir um vetor de strings
      string[] linguagens = {"Java", "Python", "PHP", "Ruby"};
      
      // vamos obter o último elemento do vetor
      string ultimo = linguagens.Last();

      // vamos mostrar o resultado
      Console.WriteLine("A última linguagem é: {0}", ultimo);

      Console.WriteLine("\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

Ao executar este código C# nós teremos o seguinte resultado:

A última linguagem é: Ruby

Fique atento ao fato de que o método Last() pode atirar uma exceção do tipo InvalidOperation se o array ou coleção estiver vazia ou não incluir nenhum elemento que se encaixe nas condições testadas.

Veja o resultado ao chamarmos este método em um vetor vazio:

System.InvalidOperationException
HResult=0x80131509
Message=Sequence contains no elements
Source=System.Linq
StackTrace:
at System.Linq.ThrowHelper.ThrowNoElementsException()
at System.Linq.Enumerable.Last[TSource](IEnumerable`1 source)
at Estudos.Principal.Main(String[] args) in C:\estudos_c#\Estudos\Principal.cs:line 11


C# ::: Windows Forms ::: TextBox

C# Windows Forms Avançado - Como rolar as linhas de um TextBox para baixo uma de cada vez usando a API do Windows

Quantidade de visualizações: 7174 vezes
Em algumas situações gostaríamos de rolar para baixo o conteúdo de um TextBox de múltiplas linhas uma linha de cada vez. Para isso podemos usar a API do Windows, mais especificamente a mensagem WM_VSCROLL com o valor SB_LINEDOWN para seu parâmetro wParam. O valor do parâmetro lParam é zero.

Veja um trecho de código que rola para baixo o conteúdo de um TextBox uma linha de cada vez. Antes de executar este exemplo, tenha a certeza de ter um TextBox de múltiplas, com barras de rolagem e conteúdo que force o aparecimento das barras de rolagem.

Comece adicionando a linha:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

using System.Runtime.InteropServices;

na seção de usings do seu formulário ou classe. Em seguida adicione o trecho de código abaixo no corpo da classe, como um método:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

[DllImport("user32.dll", EntryPoint = "SendMessage", 
  CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, 
  IntPtr wParam, IntPtr lParam);

Finalmente coloque o código abaixo no evento Click de um botão:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

private void button2_Click(object sender, EventArgs e){
  // antes de executar este exemplo certifique-se de que
  // a propriedade Multiline do TextBox esteja definida
  // como true e a propriedade ScrollBars contenha o valor
  // Vertical ou Both
  textBox1.Multiline = true;
  textBox1.ScrollBars = ScrollBars.Vertical;
    
  // constante para a mensagem WM_VSCROLL
  const uint WM_VSCROLL = 0x115;
  // constante para o parâmetro wParam
  const int SB_LINEDOWN = 1;
  
  // handle para a caixa de texto
  IntPtr handle = textBox1.Handle;
  IntPtr wParam = (IntPtr)SB_LINEDOWN;
  IntPtr lParam = IntPtr.Zero;
  
  // vamos fazer com que o TextBox role uma linha para baixo
  SendMessage(textBox1.Handle, WM_VSCROLL, wParam, lParam);
}



Desafios, Exercícios e Algoritmos Resolvidos de C#

Veja mais Dicas e truques de C#

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 89 usuários muito felizes estudando em nosso site.