O que é um termo amplamente aceito para uma variável de string que provavelmente conteria um caminho de arquivo e um nome de arquivo?

4

Para funções que precisam indexar arquivos em um diretório e renomeá-los como FileName0001, FileName0002, etc ... Muitas vezes preciso escrever uma função que divida o nome do arquivo do caminho do arquivo e renomeie o arquivo. Quando eu coloco o nome do arquivo e o caminho do arquivo juntos de volta, eu não tenho um nome muito bom para a variável que contém os dois e eu geralmente acabo concatenando-os toda vez que eu quero usá-los (geralmente usando-os como parâmetros para funções rotuladas como filename ou caminho de arquivo), então eu realmente nunca sei o que estou fazendo até notar muitos arquivos sendo escritos no mesmo diretório que meus binários.

De qualquer forma, como eu chamo um nome de arquivo e um caminho de arquivo? Eu não quero chamá-lo de arquivo, porque isso geralmente significa a informação binária por trás do arquivo. Eu não quero chamá-lo de URI porque isso geralmente significa que eu tenho algum tipo de protocolo, o que eu não faço. Eu só quero uma boa maneira de denotar "c: \ somedir \ somedir \ somedir \ somefile.txt", de modo a desconfundar essa bagunça que eu acabei de perceber que eu estou dentro.

Por favor, não apenas liste sua preferência pessoal. Eu acho que uma excelente resposta deve "'site suas fontes". (como em, forneça um link para um repositório com um bom exemplo do código sendo usado como descrevi)

    
por Peter Turner 30.05.2012 / 17:12
fonte

9 respostas

14

Um caminho da raiz do sistema de arquivos para o arquivo, incluindo o nome do arquivo, geralmente é chamado de caminho completo . Se o caminho não voltar para a raiz, é um caminho relativo. Se não incluir o nome do arquivo, será um caminho do diretório .

    
por 30.05.2012 / 17:42
fonte
6

Eu uso fileWithPath . É desajeitado mas explícito.

    
por 30.05.2012 / 17:18
fonte
6

Por que não chamar de "Caminho"? De Wikipedia :

A path, the general form of a filename or of a directory name, specifies a unique location in a file system

    
por 30.05.2012 / 17:15
fonte
6

No tempo das nuvens e da Internet, gosto de usar uri . Existe até uma RFC . O único problema que vejo com essa convenção de nomenclatura é quando você está usando uma linguagem de programação como C #, onde Uri é um Objeto contendo um Uri (claro). Então seria muito estranho nomear um String uri . É por isso que sempre uso o objeto Uri , se estiver disponível, ou crie um.

Dito isso, acho que uri é a melhor escolha, já que o caminho dado poderia e deveria ser universal .

    
por 30.05.2012 / 18:13
fonte
3

What is a widely accepted term

Não há nada disso. Escolha o nome que você mais gosta (meu favorito pessoal é fullFileName ).

    
por 30.05.2012 / 17:34
fonte
2

Como muitos outros sugeriram, use algo que funcione para você. Se você criar um esquema, cumpra-o e explique-o na documentação (você está documentando seu trabalho, não é?). Seu esquema durará mais, se você puder estendê-lo para cobrir diferentes arquivos e caminhos diferentes. O que parece funcionar bem seria construir suas variáveis de retenção de nome de arquivo em um local de configuração central, por exemplo

  • MyProjectRoot ... Raiz de seus arquivos de projetos para preceder seus subdiretórios
  • MyConfigDir = MyProjectRoot + "/ conf"
  • MyConfigFile = MyConfigDir + "/complicatedconfiguration.xml"

Dessa forma, você não apenas torna óbvio o que os nomes de arquivos individuais representam, mas também obtém um lugar onde você (ou outra pessoa trabalhando com seu código mais tarde) pode aplicar alterações que refletirão consistentemente em todo o projeto.

Para o seu projeto específico, eu ficaria mais preocupado em misturar a origem e o alvo, então eu escolheria

  • SourcePath , TargetPath para o componente do nome do caminho
  • FileName (ou BaseName ) para o componente de nome de arquivo comum a ambos, (ou SourceBaseName / TargetBaseName se eles não forem comuns a ambos)
  • e possível SourceFile e TargetFile para caminho + nome de arquivo

E eu explicaria isso no preâmbulo do programa / script.

Se quiser ser muito explícito que o seu componente FileName não contém nenhum componente de caminho, você poderia chamá-lo de Nome Base.

Então toda a sua coisa é basicamente construída a partir de

  • /AbsolutePath/BaseName.Extension
  • ./RelativePath/BaseName.Extension

combinado com qualificadores como Source ou Target

    
por 30.05.2012 / 18:05
fonte
1

Nós usamos

fileName = mystuff.txt              
dirName = c:\data\mydocs
pathName = c:\data\mydocs\mystuff.txt
    
por 30.05.2012 / 19:33
fonte
1

Isso difere muito de tempos em tempos, mas o que geralmente faço é usar nomes nos moldes de absoluteDirectoryPath , absoluteFilePath , relativeDirectoryPath , relativeFilePath , directoryName e fileName . Isso depende se eu quero acessar apenas o diretório ou o caminho completo para onde o arquivo está localizado também.

Além disso, os nomes também provavelmente refletirão, por exemplo, que tipo de lógica de negócios estão afetando ou o conteúdo dos arquivos.

    
por 31.05.2012 / 16:14
fonte
1

Para diversão, aqui está outra perspectiva. Eu trabalhei no sistema de gerenciamento de ativos de um grande jogo on-line há 10 anos. Aqui estão alguns dos conceitos que concluí para permitir flexibilidade e escalabilidade.

  • um arquivo (para meu design na época) pode conter vários "arquivos", portanto,
  • os dados que compõem um arquivo são chamados de registro
  • os dados do registro são encontrados em uma fonte de dados (por exemplo: o diskdrive é um tipo de fonte de dados). servidores web / ftp / remote são exemplos de outras fontes de dados

Um registro foi acompanhado por um 'slip de remessa' (metadados incluindo seu hash MD5 de 64 bits, regras de cache, etc ...). A guia de remessa também especificava o "Nome Persistente" do registro, que era o "caminho totalmente qualificado + nome do arquivo" para a origem de dados local_disk.

Com o passar dos anos, acrescentei a complexidade dessa área de estudo com URI e nomenclatura de URL. a fonte de dados está em vigor o "esquema". daí "file: /// blablabla

Eu ainda luto com isso também às vezes. Apenas mantenha o material do arquivo em um lugar, carregue os dados na memória e o tipo de problema vai embora :)

    
por 01.06.2012 / 07:35
fonte