Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WSS 2.0] Probleme avec les sous dossiers d'une liste

4 réponses
Avatar
Zoul
Bonjour

Je suis en train d'ecrire une webpart et lorsque j'essaye d'utiliser l'objet
"Folders" du site, cela ne marche que si celui qui execute la Webpart est
Administrateur :

SPWeb web = SPControl.GetContextWeb(Context);
SPFolder docLibFolder = web.Folders[NomListe];

Est ce normal ?
Existe t'il une solution pour contourner ce probleme ? Comment obtenir tous
les sous dossiers de 1er niveau de la liste pour un utilisateur non admin ?

D'avance merci.

4 réponses

Avatar
Renaud Comte
Vous avez sauté une étape ...

Il vous faut recupere la SPlist avant de passer au folder de celle ci, la
vous attaqeuz directmeent les folder systéme (plsu wedav que metier si vous
preferez)

SPWeb web = SPControl.GetContextWeb(Context);
SPList docLib = myWeb.Lists["Test"];

SPFolder rootFolder = docLib.RootFolder;

SPFolderCollection subFolders = rootFolder.SubFolders;
foreach (SPFolder folder in subFolders)
{
this.Label1.Text +=
PEncode.HtmlEncode(folder.Name)+ "<BR>";
}

Voila voila

Renaud Comte [MVP]
--------------------------------------
http://blogs.developpeur.org/themit/
http://blog.spsclerics.com/

Bonjour

Je suis en train d'ecrire une webpart et lorsque j'essaye d'utiliser
l'objet "Folders" du site, cela ne marche que si celui qui execute la
Webpart est Administrateur :

SPWeb web = SPControl.GetContextWeb(Context);
SPFolder docLibFolder = web.Folders[NomListe];
Est ce normal ?
Existe t'il une solution pour contourner ce probleme ? Comment obtenir
tous
les sous dossiers de 1er niveau de la liste pour un utilisateur non
admin ?
D'avance merci.



Avatar
Zoul
Bonjour et merci pour votre réponse.
Cela ne marche cependant pas. En effet,

SPWeb web = SPControl.GetContextWeb(Context);
SPList docLib = myWeb.Lists["Documents partagés"]; // exemple

SPFolder rootFolder = docLib.RootFolder;

la derniere ligne me sort systematiquement une exception et ce, quelle que
soit la liste.
Je n'arrive pas du tout à utiliser RootFolder sur une liste.
Une idée ?

D'avance merci.



"Renaud Comte" wrote:

Vous avez sauté une étape ...

Il vous faut recupere la SPlist avant de passer au folder de celle ci, la
vous attaqeuz directmeent les folder systéme (plsu wedav que metier si vous
preferez)

SPWeb web = SPControl.GetContextWeb(Context);
SPList docLib = myWeb.Lists["Test"];

SPFolder rootFolder = docLib.RootFolder;

SPFolderCollection subFolders = rootFolder.SubFolders;
foreach (SPFolder folder in subFolders)
{
this.Label1.Text +=
PEncode.HtmlEncode(folder.Name)+ "<BR>";
}

Voila voila

Renaud Comte [MVP]
--------------------------------------
http://blogs.developpeur.org/themit/
http://blog.spsclerics.com/

> Bonjour
>
> Je suis en train d'ecrire une webpart et lorsque j'essaye d'utiliser
> l'objet "Folders" du site, cela ne marche que si celui qui execute la
> Webpart est Administrateur :
>
> SPWeb web = SPControl.GetContextWeb(Context);
> SPFolder docLibFolder = web.Folders[NomListe];
> Est ce normal ?
> Existe t'il une solution pour contourner ce probleme ? Comment obtenir
> tous
> les sous dossiers de 1er niveau de la liste pour un utilisateur non
> admin ?
> D'avance merci.
>





Avatar
Zoul
Ok j'ai bien progressé. J'avais en fait oublié de mettre IncludeRootFolder à
True.

REste que le probleme persiste mais est reculé d'un cran.
Pour le premier niveau de dossiers, ca marche bien (quels que soient les
droits), alors que si j'essaye d'apeller recursivement pour le contenu des
sous dossiers (trouver toute l'arborescence), seul les admins ont le droit.


Existe t'il une methode non admin pour acceder aux sous-dossiers d'un
sous-dossier ?

Si vous avez une idée.

Encore merci pour votre assistance.

"Renaud Comte" wrote:

A moi de vous demandez quelquechose :

Vous pouvez me donner l'exception en détail car ca peut être plein plein
de chose

Voila voila

Renaud Comte [MVP]
--------------------------------------
http://blogs.developpeur.org/themit/
http://blog.spsclerics.com/

> Bonjour et merci pour votre réponse.
> Cela ne marche cependant pas. En effet,
> SPWeb web = SPControl.GetContextWeb(Context);
> SPList docLib = myWeb.Lists["Documents partagés"]; // exemple
> SPFolder rootFolder = docLib.RootFolder;
>
> la derniere ligne me sort systematiquement une exception et ce, quelle
> que
> soit la liste.
> Je n'arrive pas du tout à utiliser RootFolder sur une liste.
> Une idée ?
> D'avance merci.
>
> "Renaud Comte" wrote:
>
>> Vous avez sauté une étape ...
>>
>> Il vous faut recupere la SPlist avant de passer au folder de celle
>> ci, la vous attaqeuz directmeent les folder systéme (plsu wedav que
>> metier si vous preferez)
>>
>> SPWeb web = SPControl.GetContextWeb(Context);
>> SPList docLib = myWeb.Lists["Test"];
>> SPFolder rootFolder = docLib.RootFolder;
>>
>> SPFolderCollection subFolders = rootFolder.SubFolders; foreach
>> (SPFolder folder in subFolders) { this.Label1.Text + > >> PEncode.HtmlEncode(folder.Name)+ "<BR>"; }
>>
>> Voila voila
>>
>> Renaud Comte [MVP]
>> --------------------------------------
>> http://blogs.developpeur.org/themit/
>> http://blog.spsclerics.com/
>>> Bonjour
>>>
>>> Je suis en train d'ecrire une webpart et lorsque j'essaye d'utiliser
>>> l'objet "Folders" du site, cela ne marche que si celui qui execute
>>> la Webpart est Administrateur :
>>>
>>> SPWeb web = SPControl.GetContextWeb(Context);
>>> SPFolder docLibFolder = web.Folders[NomListe];
>>> Est ce normal ?
>>> Existe t'il une solution pour contourner ce probleme ? Comment
>>> obtenir
>>> tous
>>> les sous dossiers de 1er niveau de la liste pour un utilisateur non
>>> admin ?
>>> D'avance merci.





Avatar
Zoul
Merci

En fait, cela n'avait rien à voir avec mon parcours recursif.
Une bete ligne de code oubliée qui provoquait une exception absolument pas
liée au probleme evoqué.

Ca marchait donc tres bien.

Encore merci.