我每天从SharePoint网站下载一个文件,下面的代码工作正常。我唯一需要弄清楚的是,如果文件名不一致,如何传递文件名参数。
例如。文件是由这样的人每天上传的
Full-Report-2023-01-10-03.00.13AM.csv
Full-Report-2023-01-09-02.00.43AM.csv
Full-Report-2023-01-08-20.30.53AM.csv
我应该每天下载该文件,但不知道如何做到这一点,如果时间是包括在文件名。
任何帮助或建议都将不胜感激。
function DownloadFile($token, $siteId, $driveId, $filePath, $fileName)
{
$headers=@{}
$headers.Add("Content-Type", "text/plain")
$headers.Add("Authorization", "Bearer $token")
$response = Invoke-WebRequest -Uri "https://graph.microsoft.com/v1.0/sites/$siteId/drives/$driveId/items/root:/$($filename):/content" -Method GET -OutFile $filePath -Headers $headers
}
# Need to fix here
DownloadFile -token $token -siteId $siteId -driveId $driveId -filePath "E:\Log-Files\Latest-Report.csv" -fileName "Full-Report-2023-01-08-20.30.53AM.csv"
1条答案
按热度按时间mwkjh3gx1#
me/drive/root/children
端点不支持按createdDateTime
属性排序,因此您需要按name
降序对文件进行排序,使用$filter
仅返回以Full-Report-
开头的文件,以减少要返回的文件数。可以使用$select
仅返回id
和name
属性。只能返回一项(通过使用应该是最新文件的$top)
。因此,如果您有以下文件
上面查询应该只返回
Full-Report-2023-01-10-03.00.13AM.csv
解析响应json
$latestFiles
以获得第一项的name
属性。现在,您可以调用
DownloadFile
,并将上面的响应中的name
用于-fileName