Personalized folders tags in sharepoint

Copper Contributor

Sharepoint is for sharing. Tags (a windows File Explorer feature in file properties) helps search at high-level content past filename. My tags aren't going to be relevant for all parties that have sharepoint access. I'd like to be able to tag sharepoint content without adding unneeded fluff to other users. Is there a typical approach?

 

If not, I'm considering the value of copying the directory structure of the sharepoint onto my machine and making shortcuts for the files themselves. From here I can add tags to the shortcuts (which are files) and they'll be local.

 

Also, if the copying can be done via powershell, I'm familiar with command line for linux, so I don't expect too much barrier to that kind of solution.

 

 

5 Replies

Hi @orionyeung,

 

you can just go into a folder in SharePoint and select "Add shortcut to OneDrive".

You will get a new synced folder with the same name at the root of your OneDrive.

 

Now you can rename that folder in your OneDrive like any "normal" folder and organize it into a folder structure.


You can alternatively create an open termset where everyone can create new terms. Then create a managed metadata column on your library and allow users to type new values into that termset.
Now everybody can create their own tags and add them to documents.
But everyone will see all tags from all people.

Best Regards,
Sven

@SvenSieverding will this solution work recursively? That is, in the following directory tree, if I do this on the folder called sharepoint_folder_in_onedrive, can I modify properties of folder a,b,c,a/one,a/two without affecting what's on the sharepoint?

 

It is clear to me that anything I do to sharepoint_folder_in_onedrive will be to my own copy, but I'm unsure otherwise.

 

sharepoint_folder_in_onedrive
├── a
│   ├── one
│   │   └── a1.tmp
│   └── two
│   └── a2.tmp
├── b
│   ├── alpha
│   └── beta
└── c
└── see.tmp

Hi @orionyeung,

if you did sync the folder "sharepoint_folder_in_onedrive" then no.

Everything below that folder is synced to the sharepoint folder, so everything you change below sharepoint_folder_in_onedrive will be changed on your SharePoint.

But if you have a SharePoint folder structure like this


SharePoint Site
├── Folder1
│   ├── Subfolder1.1
│   ├── Subfolder1.2
│   ├── Subfolder1.3
├── Folder2
│   ├── Subfolder2.1

then you can go into "Subfolder1.1" and "Subfolder2.1" folder and sync both to OneDrive

 

Your OneDrive
├── Subfolder1.1 (link to Subfolder1.1)
├── Subfolder2.1 (link to Subfolder2.1)

Then rename the folders like this

Your OneDrive
├── Case A (link to Subfolder1.1)
├── Case B (link to Subfolder2.1)

and then move both folders into a subfolder like this


Your OneDrive
├── Cases (real folder on your OneDrive)
│   ├── Case A (link to  Subfolder1.1)
│   ├── Case B (link to  Subfolder2.1)

In that way you can build your own folder structure on your OneDrive with links to many different SharePoint folders.
Everything below the "Case A" and "Case B" folder will be live SharePoint data from the "Subfolder1.1" and "Subfolder2.1".

You don't have to change properties or labels here, you just re-organize existing SharePoint Folders in your Onedrive into a structure that is more suitable for you.

Best Regards,
Sven

Hmm, this won't scale well enough for the depth of folder nesting I have. Can powershell list locations of all files and copy files? If I have that, then I can handle it.

If can I get output like below of the entire sharepoint (somehow, I assume powershell could work), then I could do the rest on my own (with powershell)

SharepointRootDir/folder1/folder1.1
SharepointRootDir/folder1/folder1.1/filea.txt
SharepointRootDir/folder1/folder1.1/fileB.txt
SharepointRootDir/folder1/folder1.2/fileC.txt
SharepointRootDir/folder2/folder2.1/fileD.txt
SharepointRootDir/folder3/fileE.txt

Hi @orionyeung,

 

ok, getting a list of all files in a sitecollection is easy using PnP Powershell

Connect-PnPOnline https://tenant.sharepoint.com/sites/mysite

$DocumentLibraries = Get-PnPList | Where-Object { $_.BaseTemplate -eq 101 -and $_.Hidden -eq $false } 

$DocumentLibraries | foreach-object {
    $ListItems = Get-PnPListItem -List $_.Title -PageSize 500 | Where { $_.FileSystemObjectType -eq "File" }
    ForEach ($Item in $ListItems) {
        $Item.FieldValues['FileRef']
    }
}

Best Regards,
Sven