SPIEFolder for SharePoint 2007/2010

Due to popular demand, I have now included a compiled version of SPIEFolder 2.0 for Windows SharePoint Services 3.0/Microsoft Office SharePoint Server 2007 along with SharePoint Foundation 2010/SharePoint Server 2010 in the download package for SPIEFolder.

For details on this version, see my previous blog post here

Hope you enjoy!

– Keith

25 Replies to “SPIEFolder for SharePoint 2007/2010”

  1. Hi~ thanks for your wonderful tool.but i found if OS is x64, SPIEFolder not working.

    Could you Give me a x64 version Link? thanks a lot!

  2. Keith, I just had to say thank you for this tool. Solved my problem.
    People like you who share these helpful tools make the world a better place.

    Thanks again.

  3. Please, there is a Claims based spiefolder.exe release? because I get 080070005 error, or some workaround

  4. Hi Keith,

    A thousand thanks for your awesome tools and also life saver for a SharePoint beginner.
    It seem able help me to solve the direct import file problem.
    But i was met some problem when use the spiefolder.exe.
    Is there any method to contact you?
    Sorry for that, i could not find your email address on the blog.
    Looking forward to having the discuss with you.

    Thanks and regards,


  5. Hi,

    i have sharepoint 2007 server and have been tasked with moving all data from there and perhaps keeping it stored somwhere in case it needs to be accessed. can this be done. i think you mention it can be exported to another sharepoint but we do not want to use sharepoint anymore.

    hope this makes sense. much appreciate any help.

  6. SPIEFolder works great in our 2010 environment, but repeatedly receive the dreaded “The Web application at…” error. The URL I am using is valid. Our SP 20007 version is only up to April 2010 CU.

  7. I could use the 64bit link to your tool. I have used it in a 32 bit environment and it worked great. I currently have a site that is running on a 64bit os and need to export the files. Your help would be greatly appreciated.

  8. Kevin,

    I’m not sure if this post is being monitored by the author, I left a message in February and got no response. I ended up using the below PowerShell script to accomplish what I needed:
    [Parameter(Mandatory=$true)][System.String]$Url = $(Read-Host -prompt “Web Url”),
    [Parameter(Mandatory=$true)][System.String]$Library = $(Read-Host -prompt “Document Library”),
    [Parameter(Mandatory=$true)][System.String]$DestPath = $(Read-Host -prompt “Destination Folder”),
    [Parameter(Mandatory=$true)][System.String]$LogDate = $(Read-Host -prompt “LogDate for Filename”)

    $site = new-object microsoft.sharepoint.spsite($Url)
    $web = $site.OpenWeb()

    #$logfiledate = Get-Date -f s
    #$logfiledate = $logfiledate -replace “:”,””
    $logfilename = “$LogDate+”.log”
    $logfileFolder = “E:\Export\Log”
    $log = $logfileFolder+”\”+$logfilename

    $folder = $web.GetFolder($Library)
    $folder # must output it otherwise “doesn’t exist” in 2007

    Write-Error “The document library cannot be found”

    #$directory = $pwd.Path
    $directory = $DestPath+”/”+$LogDate

    #$rootDirectory = Join-Path $pwd $folder.Name
    $rootDirectory = Join-Path $DestPath $folder.Name

    if (Test-Path $rootDirectory) {
    Write-Error “The folder $Library in the current directory already exists, please remove it”

    #progress variables
    $global:counter = 0
    $global:total = 0
    #recursively count all files to pull
    function count($folder) {
    # if ($folder.Name -ne “Forms”) {
    if ($folder.Name -eq “IDR Documents”) {
    $global:total += $folder.Files.Count
    #$folder.SubFolders | Foreach { count $_ }
    write “counting files, please wait…”
    count $folder
    #write “Total Number of files to copy $global:total”
    Get-Date | Out-File $log -append
    “Total Number of files to copy $global:total” | Out-File $log -append
    “====================================================” | Out-File $log -append

    function progress($path) {
    $percent = $global:counter / $global:total * 100
    write-progress -activity “Pulling documents from $Library” -status $path -PercentComplete $percent

    #Write file to disk
    function Save ($file, $directory) {
    $data = $file.OpenBinary()
    $path = Join-Path $directory $file.Name
    #progress $path
    #”Copying—“+$path | Out-File $log -append
    “Copying—“+$file | Out-File $log -append
    [System.IO.File]::WriteAllBytes($path, $data)

    #Forms folder doesn’t need to be copied
    $formsDirectory = Join-Path $rootDirectory “Forms”

    function Pull($folder, [string]$directory) {
    $directory = Join-Path $directory $folder.Name
    if ($directory -eq $formsDirectory) {
    mkdir $directory | out-null

    $folder.Files | Foreach { Save $_ $directory }

    #$folder.Subfolders | Foreach { Pull $_ $directory }

    #Write “Copying files recursively”
    Pull $folder $directory
    $Dest = $DestPath+”\”+$LogDate+”\PowerShell”
    $NumFiles = (Get-ChildItem $Dest).Length
    “====================================================” | Out-File $log -append
    “Total files copied = $NumFiles out of $global:total” | Out-File $log -append
    “====================================================” | Out-File $log -append

    Hope it helps

    1. It is being monitored 🙂 But sometimes I don’t get the notifications. I’m sorry I missed your previous post Hank, and thanks for sharing the PowerShell script with Kevin.

  9. Hello Keith,
    I downloaded the execute file and use the command indicated in the document file. The message coming back is SYNTAX:…….. and there are no error messages.
    I have checked and the syntax is correct.
    What else should I do.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: