Back in 2020 I used Picasa to do a face slideshow for Ryan's 21st.
Afterwards I put that install aside and used it on my old computer to tag work people. This worked really well and I tagged the faces in thousands of photos.
But I never got around to migrating the install to my new computer. I still had the database directories backed up, just had never used them.
The problem with Picasa is that it's only setup to run one database per user. But I don't want the several hundred people in my work database mixed up with people in my friends and family directories.
So recently I fired up Picasa on my new computer. Because I hadn't run it before (as a bonus you don't need to "install" it, you can just run it) it started a fresh database. I pointed it at my family and friends folder and let it do its thing for a while. Then I shut it down and moved aside the two Picasa folders in my user directory. I copied across the work database folders and fired up Picasa again. This worked beautifully and loaded straight into my work database.
So switching between Picasa databases is as simple is swapping out the two folders -
C:\Users\<user>\AppData\Local\Google\Picasa2
C:\Users\<user>\AppData\Local\Google\Picasa2Albums
Apparently there's utilities out there that will swap them around for you.
And this dude even figured out you can just run Picasa as a different user, so the <user> directory will be different, but there's no fussing around moving directories around.
This is what I've currently got setup. I've created a folder for each database I want to use, and move the Picasa2 and Picasa2Albums in and out. You could keep these anywhere, but I keep them in the same place for convenience.
If I could be bothered I could write a script to move them around automatically, but this will do for now.
It's such a shame Google is utter trash at maintaining support for their products. Some of them were awesome (Google Reader, Chromecast come to mind). They might fix Chromecast.
To find Picasa nowadays you have to find it on old repositories. I'd lay a flower on its grave if that page was still being maintained...
Edit 16.3.25. I wrote a script.
It's pretty trash, I'm very much a novice coder. Sue me. ;)
Also sorry about the lack of indents, the copy paste didn't work so well.
# A script to swap out Picasa3 database folders
# Kazza the Blank One, March 2025
#### Section 1 - Getting Started ####
# Set the Google Picasa local directory
$GoogleDir = "$env:USERPROFILE\AppData\Local\Google"
# Define folder options
$PicasaFolderList = @{
"1" = "Work"
"2" = "Friends and Family"
"3" = "Church"
"4" = "Europe 2016"
}
# Check if Picasa is running first - we don't want to be moving folders around while it's running!
if (Get-Process Picasa3) {
write-host "Error: Picasa3 is running, exiting"
sleep 5 # So you can see the error message before it closes the window
exit
}
else {
write-host "Picasa3 is not running - this is a good thing! Don't worry about that scary error above!"
}
#### Section 2 - Select which folder you want to use ####
# This bit from https://www.reddit.com/r/PowerShell/comments/1cu8e62/multiple_choice_for_readhost_input/
# Display the list of folders to choose from
Write-Host "Enter the number for the folder you wish to select:"
foreach ($folder in ($PicasaFolderList.GetEnumerator() | Sort-Object Name)) {
Write-Host "[$($folder.Name)] $($folder.Value)"
}
# Prompt the user to enter the number of the folder
$folderNumber = Read-Host "Enter the number of the folder you wish to select"
# Get the selected folder based on the number entered by the user
$folderPath = $PicasaFolderList[$folderNumber]
# Check if the path was found
if (-not $folderPath) {
Write-Host "Path not found. Please enter a valid number. Exiting."
sleep 5 # So you can see the error message before it closes the window
exit
}
# Display the selected folder path
Write-Host "You selected $folderPath"
#### Section 3 - Check for preexisting runs ####
# Check to see if you've left folders lying around from a previous run of Picasa
# Assume that if any of the database folder directories are empty, then put the database folders back in them
# If none of those folders are empty, exit (haven't done code for that heh)
# Check for the existence of Picasa2 or Picasa2Albums folders
if ((Test-Path "$GoogleDir\Picasa2") -or (Test-Path "$GoogleDir\Picasa2Albums")) {
write-host "Picasa database directories exist, checking for an empty folder to move them to"
# Check the list of folders provided for an empty one. It'll stop after the first one and move the folders there.
foreach ($folder in ($PicasaFolderList.GetEnumerator() | Sort-Object Name)) {
$databasedir = "$GoogleDir\Picasa - $($folder.Value)"
# If a directory is empty we'll use that
if (-Not (Test-Path "$databasedir\*")) {
$emptydir = $databasedir
write-host "Found empty directory - $emptydir"
# Move the database folders to the empty directory
Move-Item -Path "$GoogleDir\Picasa2" -Destination $emptydir
Move-Item -Path "$GoogleDir\Picasa2Albums" -Destination $emptydir
# Wait five seconds to make sure the folders have moved
write-host "Waiting 5 seconds to make sure folders have moved"
sleep 5
# Stop after the first empty directory
continue
}
# You really should have some code here to exit out if none of the folders are empty.
# Although it doesn't matter too much, as the next check will fail out if the directories exist in the root
}
}
#### Section 4 - Move folders around ####
# Check again to make sure the folders are gone before moving things around
if ((Test-Path "$GoogleDir\Picasa2") -or (Test-Path "$GoogleDir\Picasa2Albums")) {
write-host "Error: Picasa database directories still exist, something has gone wrong, exiting"
sleep 5 # So you can see the error message before it closes the window
exit
}
# Set the full working directory path based on the user selected folder
# Note the "Picasa - " prefix on the directory names. The $folderPath should match your actual folder paths.
$databasedir = "$GoogleDir\Picasa - $folderPath"
# Check the database directories exist within the working directory, then move them
# yeah yeah you could probably do this with a try/catch, I never said my code was any good
if (Test-Path "$databasedir\Picasa2") {
Move-Item -Path "$databasedir\Picasa2" -Destination $GoogleDir
}
else { write-host "$databasedir\Picasa2 didn't exist, exit"; exit}
if (Test-Path "$databasedir\Picasa2Albums") {
Move-Item -Path "$databasedir\Picasa2Albums" -Destination $GoogleDir
}
else { write-host "$databasedir\Picasa2Albums didn't exist, exit"; exit}
#### Section 5 - Start Picasa ####
# Launch Picasa
Start-Process "C:\PROGRAMMES\Graphics\Picasa3\Picasa3.exe"
Comments