Pegar diretorio sem o nome do arquivo

15/08/2012

0

Se uso isso, eu preciso de um arquivo pelo menos para trazer apenas o diretorio

string diretorio = System.IO.Path.GetDirectoryName(@C:\Diretorio\meu_arquivo.extensão);

O que eu quero é apenas o diretorio, onde não existe nenhum arquivo, uma pasta nova. Como eu faço?
Pjava

Pjava

Responder

Posts

15/08/2012

Joel Rodrigues

Certo, como você quer identificar essa pasta? Onde ela está? É necessária alguma referência para localizá-la.
Responder

15/08/2012

Marcio

blz?

tente com isso..

DirectoryInfo dirUsuario = new DirectoryInfo(diretorio);

falow
Responder

15/08/2012

Pjava

Com diretório vazio eu não consigo então. Tenho sempre que dar um nome ou pegar um arquivo, mas e se for um Dir novo, como eu pego ele. Não tem como?
Responder

15/08/2012

Marcio

não precisa informar o arquivo, somente o diretorio mesmo
não sei se é o que estou entendendo...
Responder

15/08/2012

Joel Rodrigues

Rapaz, alguma referência ao diretório tem que haver. Como você quer pegar o nome do diretório ´´do nada´´?
Responder

15/08/2012

Pjava

Isso, tipo:

O meu cliente criou essas pastas, por exemplo:

C:\Cls\Documento\Itau

Essas pastas passaram a existir, mas sem nada lá. Agora, tenho um aplicativo que roda e gera uma planilha Excel e no final salva dentros da pasta Itau, por exemplo. Só que antes de salvar, eu tenho que passar essa pasta para uma variável, chamada caminho que ela guarda esse caminho + nome_planilha.xls e exporta. Então, eu preciso somente carregar o caminho. Hoje ele está fixo no código, mas isso é Go Horse e quero mudar isso, "parametrizar" esse caminho à escolha do Cliente. Aí ele salva onde quiser.
Responder

15/08/2012

Joel Rodrigues

Essa pasta pode ser qualquer uma? Em qualquer lugar? Não seria mais fácil pedir para o cliente informar o diretório?

Por que você está praticamente querendo que o framework lhe informe onde o cliente criou uma pasta qualquer(que pasta?), aí é complicado, não acha?

Não sei se lhe interessa, mas existem classes para gerenciar diretórios, as quais permitem você saber se foram criados arquivos, alterados, excluídos, etc. Procure por FileSystemWatcher.
Responder

16/08/2012

Pjava

Quando eu trabalhava com Delphi, eu não tinha esse problema. Abria um OpenDialog e o usuário aí buscaria a pasta de trabalho, bem simples. O C# tem o OpenFileDialog, que eu uso, mas depende de uma arquivo na pasta, pois ele busca é o arquivo e não somente a pasta. Poderia colocar um lixo na pasta, pegar a pasta por esse lixo e depois renomear o nome do lixo, para um de preferência do usuário. Mas se o usuário quiser trabalhar em outra pasta, ele teria que criar uma outrop lixo lá e trabalhar. Não é o que eu gostaria. É algo bem simples, em java também é possível, só não estou sabendo fazer em C#. Não creio que o C# não tenha esse recurso de eu escolher uma pasta para poder trabalhar, somente a pasta, sem o nome do arquivo. É somente um Dialog, que eu não sei qual.
Responder

16/08/2012

Pjava

Só para exemplificar melhor. Quando estamos instalando um programa, ele sugere uma pasta default ou então, aquele famoso botão Browser, onde você escolhe a pasta. É exatamente isso que eu quero. Só que com OpenFileDialog eu abro o arquivo e não pasta, tanto que se não houver arquivo nele, a opção de escolha fica desabilitada.
Responder

16/08/2012

Marcio

ah já sei o que está precisando...
é tipo o SelectDirectory do delphi..
você informa apenas o diretório na caixa de diálogo ao invés de precisar informar um arquivo
na caixa de diálogo...captei.. rss

como nunca precisei fazer isso em .net achei o link abaixo na net... pode ser o que você está precisando..

http://msdn.microsoft.com/pt-br/library/system.windows.forms.folderbrowserdialog.aspx


falow
Responder

16/08/2012

Pjava

Vi que esse componente faz exatamente o que eu quero. Mas está dando erro no if

FolderBrowserDialog
Responder

16/08/2012

Joel Rodrigues

Que erro, PJava?
Por favor, nunca diga apenas ´´está dando erro´´, especifique logo qual erro está ocorrendo.
Responder

16/08/2012

Pjava

Consegui o que eu queria.

using (FolderBrowserDialog fbd = new FolderBrowserDialog())
if (fbd.ShowDialog() == DialogResult.OK)
{
edtDestino.Text = fbd.SelectedPath;
}
Responder

16/08/2012

Pjava

Consegui o que eu queria.

using (FolderBrowserDialog fbd = new FolderBrowserDialog())
if (fbd.ShowDialog() == DialogResult.OK)
{
edtDestino.Text = fbd.SelectedPath;
}
Responder

16/08/2012

Joel Rodrigues

Show de bola.
Eu não tinha entendido que você queria usar uma caixa de diálogo, só depois que você explicou melhor foi que ficou claro.
Estou encerrando o tópico.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar