我使用 OneDrive 将 SharePoint 目录同步到我的 Windows 文件系统。如下图所示,有些文件在本地可用,而另一些文件只能在云端获取:
当我双击仅在云中可用的文件时,它会自动下载。但是,我想使用终端 (CMD) 以编程方式实现相同的结果。
这是我尝试过的:
我导航到包含该文件的目录:
cd "C:\Users\MyUsername\OneDrive\Documents"
我尝试使用
attrib
命令使文件在本地可用:
attrib -P +U my_file.iso
这不会产生任何输出,文件仅保留在云端。
我也尝试过不使用文件扩展名:
attrib -P +U my_file
这导致了错误:
Could not find that file.
我想以编程方式触发从同步的 SharePoint 目录下载特定文件(例如,
my_file.iso
)以使其在本地可用,而无需手动双击它。
attrib -P +U
。dir
检查文件是否存在于目录中。我发现我可以使用这个简单的 PowerShell 脚本:
\$filePath = "${filePath.replace('/', '\\')}"
if (!(Test-Path \$filePath)) {
throw "Could not find ISO file at \$filePath"
}
\$fileAttributes = (Get-Item \$filePath).Attributes
if (\$fileAttributes -band [System.IO.FileAttributes]::Offline) {
Write-Host "The file is only available in the cloud. Downloading..."
Get-Content \$filePath > \$null
Write-Host "The file has been successfully downloaded."
} else {
Write-Host "The file is already available locally."
}