Existe alguma maneira de verificar se um arquivo do OneDrive é salvo localmente por meio de um terminal no Windows?
- Gostaria de executar automaticamente uma verificação de todos os arquivos de dados associados a um projeto sem que o usuário precise garantir que todos os arquivos sejam salvos localmente selecionando Sempre manter neste dispositivo nas configurações de sincronização do OneDrive para essa pasta
- Dentro das Propriedades de um arquivo, é possível ver o tamanho do arquivo e o tamanho do arquivo no disco, mas quando tento consultar o tamanho do arquivo em um terminal, ele retorna o tamanho total do arquivo mesmo que não esteja salvo no disco (seria uma solução viável se eu conseguisse consultar o tamanho no disco) :
Acho que é possível consultar o tamanho no disco, mas isso pode ser enganoso se você encontrar um arquivo esparso ou um arquivo compactado NTFS ou qualquer outra coisa legitimamente menor no disco.
Em vez disso, consulte os atributos do arquivo (o mesmo que Hidden/ReadOnly) – se o arquivo não estiver armazenado em cache localmente, ele terá os atributos
Offline
1 eRecallOnAccess
(bits 0x1000 e 0x400000, respectivamente).Esses arquivos também parecem ter o
Unpinned
atributo não documentado (0x100000), embora eu não tenha certeza se são sempre todos os 3 atributos que estão presentes ou se há situações.Enquanto isso, "Sempre manter este dispositivo" corresponde ao
Pinned
atributo (0x80000). Os arquivos armazenados em cache temporariamente não têm nenhum desses atributos.No PowerShell,
(Get-Item $file).Attributes
terá esses sinalizadores.Se você estiver trabalhando com o Cmd simples (sem acesso ao PowerShell), o
attrib
comando mostrará "Recall on access" como oM
sinalizador e (acho) "Offline" comoO
. Ele também permite alterar os sinalizadores fixados/não fixados, para que você possa marcar os arquivos como "sempre manter" puramente por meio da linha de comando.Isso é principalmente específico para o OneDrive. Da última vez que verifiquei, o Dropbox funcionava de maneira bem diferente.
1 O
Offline
atributo no Windows é anterior ao OneDrive por anos – sua origem foi o subsistema "Gerenciamento de Armazenamento Hierárquico", que permitia que arquivos não utilizados fossem descarregados em fita ou similar. Naquela época, os dados armazenados no sistema em execução estavam "online" e os dados que estavam em um armário estavam "offline". Com o armazenamento em nuvem, os significados mudaram.