它不起作用:
Uri endpointUri = new Uri(webUrl + "/\_api/web/GetFileByServerRelativeUrl('" + webRelativeUrl + "/" + documentLibName + "/" + fileName + "')/$value");
try{
HttpResponseMessage response = await client.GetAsync(endpointUri);
response.EnsureSuccessStatusCode(); // Throw on error
using (Stream contentStream = await response.Content.ReadAsStreamAsync()){
using (FileStream outputStream = new FileStream(path + fileName, FileMode.OpenOrCreate | FileMode.Append, FileAccess.Write, FileShare.None)){
await contentStream.CopyToAsync(outputStream);
}
}
Console.WriteLine("File downloaded successfully.");
}catch (HttpRequestException ex){
Console.WriteLine($"Error downloading file: {ex.Message}");
}
在这一行中它失败了。 错误:
ystem.Net.WebException
HResult=0x80131509
Message=The remote server returned an error: (403) FORBIDDEN.
Source=System.Net.Requests
StackTrace:
at System.Net.HttpWebRequest.GetResponse()
at System.Net.WebClient.GetWebResponse(WebRequest request)
at System.Net.WebClient.DownloadBits(WebRequest request, Stream writeStream)
at System.Net.WebClient.DownloadFile(Uri address, String fileName)
at System.Net.WebClient.DownloadFile(String address, String fileName)
at Program.<Main>$(String[] args) in E:\LeaveManagement\Sharepoint\Program.cs:line 34
我是 Sharepoint 团队的所有者,为什么它不起作用
您可以参考以下代码获取文件
static void Main(string[] args)
{
string userName = "<user name>";
string password = "<password>";
var securePassword = new SecureString();
foreach (char c in password)
{
securePassword.AppendChar(c);
}
using (ClientContext cxt = new ClientContext("<your site URL>"))
{
cxt.Credentials = new SharePointOnlineCredentials(userName, securePassword);
Web web = cxt.Web;
cxt.Load(web, a => a.ServerRelativeUrl);
cxt.ExecuteQuery();
List list = cxt.Web.Lists.GetByTitle("<your library name >");
cxt.Load(list);
cxt.Load(list.RootFolder);
cxt.Load(list.RootFolder.Folders);
cxt.Load(list.RootFolder.Files);
cxt.ExecuteQuery();
FolderCollection fcol = list.RootFolder.Folders;
List<string> lstFile = new List<string>();
foreach (Folder f in fcol)
{
if (f.Name == "<your folder name>")
{
cxt.Load(f.Files);
cxt.ExecuteQuery();
FileCollection fileCol = f.Files;
foreach (File file in fileCol)
{
lstFile.Add(file.Name);
}
}
}
}
}