Sharepoint: Wie Sie einen Ordner in einer Dokumentbibliothek erstellen Sie bitte Web-Service

StackOverflow https://stackoverflow.com/questions/1630824

  •  06-07-2019
  •  | 
  •  

Frage

Ich brauche einen einfachen Ordner in einer Dokumentbibliothek in Sharepoint zu erstellen, aber ich kann nicht einen Fetzen Dokumentation zu diesem Thema zu finden scheinen.

Die dws webservice scheint verwendet zu werden physische Ordner in einem Arbeitsbereich zu erstellen, ich brauche einen Weg, um einen Ordner in einer Dokumentbibliothek zu erstellen.

Nicht sicher, was zu tun, bitte helfen

War es hilfreich?

Lösung

Ich fand diese Methode funktioniert:

    HttpWebRequest request = (System.Net.HttpWebRequest)HttpWebRequest.Create("http://mySite/MyList/MyfolderIwantedtocreate");
    request.Credentials = CredentialCache.DefaultCredentials;
    request.Method = "MKCOL";
    HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();
    response.Close();

Andere Tipps

Dies ist der Code für ähnliche Anforderung in JAVA Apache mit Httpclient

import org.apache.http.*;

private static HttpResponse makeFolder(
            String url,
            DefaultHttpClient httpClient) throws Exception {
    BasicHttpRequest httpPost = new BasicHttpRequest("MKCOL", url);
    HttpUriRequest httpUriRequest = new RequestWrapper(httpPost);

    HttpResponse status = httpClient.execute(httpUriRequest);
    EntityUtils.consume(status.getEntity());
    return status;
}

Code, um das Httpclient und rufen Sie die makeFolder Funktion zu erstellen

DefaultHttpClient httpClient = new DefaultHttpClient();
httpClient.getCredentialsProvider().setCredentials(
        AuthScope.ANY,
        new NTCredentials(config.getUserName(), config.getPasswords(),
                        "", config.getDomain()));

Ich weiß, dass dies eine ziemlich alte Frage, aber falls jemand anderes findet, das ist, wie ich habe es getan:

       String CAML =  "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
        "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " +
            "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " +
            "xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" +
        "<soap:Body>" +
        "<CreateFolder " + "xmlns=\"http://schemas.microsoft.com/sharepoint/soap/dws/\">"+
            "<url>" + ParentFolder+'/'+NewFolderName+ "</url>"+
        "</CreateFolder>"+
        "</soap:Body>" +
        "</soap:Envelope>";

       String uri = "http://[your site]/_vti_bin/dws.asmx";

       WebClient client = new WebClient();
        client.Headers["SOAPAction"] = "http://schemas.microsoft.com/sharepoint/soap/dws/CreateFolder";
        client.Headers["content-type"] = "text/xml; charset=utf-8";
        client.Encoding = Encoding.UTF8;
        client.UploadStringCompleted += UploadStringCompleted;
        try
        {
            client.UploadStringAsync(new Uri(uri, UriKind.Absolute), "POST", CAML);
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error in upload string async: " + ex.Message);
        }

Ich war mit Silverlight, weshalb ich Upload-String async verwendet, kann aber andere Möglichkeiten, mit der gleichen http post-Methode durchgeführt wird

Ich habe einige Arbeit mit dem Web-Service getan, aber ich kann keinen Code finden, die einen Ordner erstellt. Allerdings habe ich Code, dass Kopien von Dateien von einer Netzwerkfreigabe zu einem vorhandenen Ordner in einer Sharepoint-Dokumentbibliothek mit UNC-Pfade. Es nutzt System.IO.File - vielleicht können Sie diese Technik verwenden, um einen Ordner zu erstellen

Erstellt Ordner in Sharepoint mithilfe von Dokumentarbeitsbereich Web Dienst (AWD) . Funktioniert prima.

public static bool CreateSPFolder(string FolderDir, string FolderName, yourCredentialsClass credentials)
{
    FolderName = ReplaceInvalidChars(FolderName);

    // create an instance of the sharepoint service reference
    Dws.Dws dwsWebService = new Dws.Dws();
    dwsWebService.Url = credentials.SharePointUrl + "/_vti_bin/Dws.asmx";
    dwsWebService.Credentials = new NetworkCredential(credentials.UserId, credentials.Password);

    string result = dwsWebService.CreateFolder(string.Format("{0}/{1}",FolderDir,FolderName));
    dwsWebService.Dispose();

    if (result == null)
    {
        throw new Exception("No response creating SharePoint folder");
    }

    if (result.Equals("<Result/>"))
    {
        return true;
    }

    return false;
}

public static string ReplaceInvalidChars(string strIn)
{
    return Regex.Replace(strIn.Replace('"', '-'), @"[.~#%&*{}:<>?|/]", "-");
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top