Загрузите последний файл в папку SharePoint - PullRequest
0 голосов
/ 25 октября 2019

Мой текущий код загружает файл SharePoint с абсолютного URL-адреса файла и записывает в локальный файл.

Я хочу изменить его на использование URL-адреса папки и загружать файл в базу папок на каком-либо фильтре.

Можно ли это сделать?

Ниже приведен мой фрагмент кода:

string fullFilePath = DownloadSPFile("http://MySharePointSite.com/sites/Collection1/Folder1/File1.docx/");

public static string DownloadSPFile(string urlPath)
{
    string serverTempdocPath = "";

    try
    {
        var request = (HttpWebRequest)WebRequest.Create(urlPath);
        var credentials = new NetworkCredential("username", "password", "domain");

        request.Credentials = credentials;
        request.Timeout = 20000;
        request.AllowWriteStreamBuffering = false;

        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
        {
            using (Stream stream = response.GetResponseStream())
            {
                serverTempdocPath = Path.Combine(AppConfig.EmailSaveFilePath + "_DOWNLOADED.eml");

                using (FileStream fs = new FileStream(serverTempdocPath, FileMode.Create))
                {
                    byte[] read = new byte[256];
                    int count = stream.Read(read, 0, read.Length);
                    while (count > 0)
                    {
                        fs.Write(read, 0, count);
                        count = stream.Read(read, 0, read.Length);
                    }
                }
            }
        }
    }
    catch (Exception ex)
    {
        AppLogger.LogError(ex, "");
        throw ex;
    }
    return serverTempDocPath;
}

Ответы [ 2 ]

1 голос
/ 25 октября 2019

Если на вашем сайте sharepoint разрешен доступ к api sharepoint rest, вы можете очень легко получить подробную информацию.

Получить список файлов

url: http://site url/_api/web/GetFolderByServerRelativeUrl('/Folder Name')/Files
method: GET
headers:
    Authorization: "Bearer " + accessToken
    accept: "application/json;odata=verbose" or "application/atom+xml"

и пройти запрос для этого

"?filter=$top=1&$orderby=Created desc"

Дополнительная информация

0 голосов
/ 25 октября 2019

Вы пытались отформатировать ваш urlPath?

как: string urlPath = "path/to/folder/"; string fileFilter = "Cat.png"; string finalPath= String.format("{0}{1}", urlPath, fileFilter); (или что-нибудь подобное)

(надеюсь, я понимаю ваш вопрос и смог вам помочь ^^)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...