USAR CURINGA EM CAMINHO DO ARQUIVO

ERLANMG 29/05/2014 15:57:45
#438594
Caros colegas, boa tarde!

Estou com o seguinte problema:

Coloquei um script no outlook que ao receber o e-mail com xml da nf-e ele salva no diretório c:
fe, e meu sistema que é de emissão de CT-e importo a NF-e apenas digitando a chave de acesso da nf-e, mas os clientes que emitem a nf-e não seguem um padrão ao nomear os arquivos com isso as vezes o sistema informa que xml não encontrado, mas na verdade o nome é que está diferente.

Exemplos:
NFe+ChavedeAcesso+.xml
ChaveDeAcesso-nfe+.xml
ChaveDeAcesso-Procnfe+.xml

Gostaria de saber se é possivel, utilizar curingas no caminho do arquivo.
Por exemplo:

[Ô]c:
fe\[Ô] & curinga & chavedeacesso & curinga & [Ô].xml

Desde já agradeço a atenção.

Abraços.

KERPLUNK 29/05/2014 16:21:06
#438597
*ChaveDeAcesso*.xml
GUIMORAES 29/05/2014 16:38:39
#438599
Resposta escolhida
Amigo, existem várias formas de fazer isto.
Você pode tratar ou transformar o nome do arquivo. Deixar somente a chave de acesso .xml, ou fazer com que seu sistema entenda que ele possa aceitar qualquer arquivo com a extensão .xml e no momento da leitura, verificar se o mesmo é de NF-e.

Você poderia renomear o arquivo, usando uma simples expressão.
Dim arquivo As String = [Ô]chaveAcesso-ProcNFe.xml[Ô]
IO.File.Copy(arquivo, arquivo.Replace([Ô]-[Ô], [Ô][Ô]).Replace([Ô]ProcNFe[Ô], [Ô][Ô]).Replace([Ô]NFe[Ô], [Ô][Ô]))

Isto é uma forma, você pode aprimorar ou criar a sua.
KERPLUNK 29/05/2014 17:26:30
#438602
Ou simplesmente tentar desserializar qualquer arquivo xml que chegar, como o GUIMORAES123 sugeriu
ERLANMG 29/05/2014 18:01:06
#438605
Obrigado a todos, estava usando como segue:

If File.Exists([Ô]c:\NFE\[Ô] & txtChavenf.Text & [Ô]-NFe.xml[Ô]) Then
cXml = [Ô]c:\NFE\[Ô] & txtChavenf.Text & [Ô]-NFe.xml[Ô]
ElseIf File.Exists([Ô]c:\NFE\NFE[Ô] & txtChavenf.Text & [Ô].xml[Ô]) Then
cXml = [Ô]c:\NFE\NFE[Ô] & txtChavenf.Text & [Ô].xml[Ô]
ElseIf File.Exists([Ô]c:\NFE\[Ô] & txtChavenf.Text & [Ô]-procNfe.xml[Ô]) Then
cXml = [Ô]c:\NFE\[Ô] & txtChavenf.Text & [Ô]-procNfe.xml[Ô]
Else
MessageBox.Show([Ô]NF-e não encontrada![Ô], [Ô]Mensagem do Sistema[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If

Vou fazer como GUIMORAES123 sugeriu, no script do outlook vou deixar somente a chave.

Abraços e até mais
Tópico encerrado , respostas não são mais permitidas