Skip to content

SPIEFolder for SharePoint 2007/2010

August 26, 2011

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 Comments leave one →
  1. joohn.ding permalink
    September 15, 2011 3:14 pm

    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. joohn.ding permalink
    September 15, 2011 3:15 pm

    SPIEFolder for 2007 x64 Version .Thanks!!!

  3. Michael permalink
    November 23, 2011 8:42 am

    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.

  4. February 17, 2012 4:08 am

    Is there a x64 version of this tool?

  5. April 18, 2012 4:34 am

    Please do a x64 version for 2007…. pretty please?

    • April 19, 2012 7:35 am

      Gav, I’ll see what I can do about standing up an x64 VM this weekend and see about getting an x64/2007 version of the tool built. No promises, but we’ll see.

  6. Wilmer Orihuela permalink
    April 18, 2012 10:28 am

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

    • April 19, 2012 7:36 am

      There is no Claims version, but if you run it as the farm account, you shouldn’t have any problems.

  7. Zong permalink
    August 14, 2012 12:54 am

    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,


  8. Vikas permalink
    February 19, 2013 8:44 am


    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.

    • February 19, 2013 11:01 am

      Vikas, the documentation contained in the archive shows examples of extracting the files to a file share.

  9. Vikas permalink
    February 20, 2013 3:23 am

    Sorry but what Archive? I have no knowledge on sharepoint apart from what ive been reading online

  10. Hank permalink
    February 18, 2014 6:04 pm

    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.

  11. Kevin permalink
    April 8, 2014 9:33 am

    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.

  12. Hank permalink
    April 8, 2014 11:55 am


    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

    • Kevin permalink
      April 8, 2014 12:54 pm

      Thanks Hank I’ll give it a try.

    • April 8, 2014 1:10 pm

      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.

  13. Nate G permalink
    April 24, 2014 9:25 pm

    i am using -recursive but it still skips folders on export..any ideas

  14. Jenny permalink
    October 28, 2014 6:35 pm

    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.

  15. Jenny permalink
    October 28, 2014 6:40 pm

    I am using spiefolder for sharepoint 2007.


  1. Migrando contenidos de Sharepoint a Alfresco - Blog -

Leave a Reply

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

You are commenting using your 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 )

Google+ photo

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

Connecting to %s


Get every new post delivered to your Inbox.

Join 30 other followers

%d bloggers like this: