Compartilhar via


Como a: Access, copiar e mover arquivos

Você pode usar o GetFolder M:Microsoft.SharePoint.SPWeb.GetFolder(System.String) método do SPWeb T:Microsoft.SharePoint.SPWeb classe para retornar uma pasta especificada e, em seguida, individual acessar arquivos de pasta. Após instanciar um objeto SPWeb T:Microsoft.SharePoint.SPWeb (por exemplo, como mySite), use myFolder SPFolder SPFolder myFolder = mySite.GetFolder("Shared Documents") (em Visual Basic 2005, usar Dim myFolder As SPFolder = mySite.GetFolder("Shared Documents")) para retornar a pasta Shared Documents para o site.

Exemplo

O seguinte exemplo retorna a coleção de arquivos de pasta e exibe informações sobre os arquivos.

                    Dim myFiles As SPFileCollection = myFolder.Files
Dim file As SPFile

For Each file In  myFiles

    Response.Write(file.Url.ToString() & "<BR>")
    Response.Write(file.Length.ToString() & "<BR>")

Next file
                    SPFileCollection myFiles = myFolder.Files;

foreach (SPFile file in myFiles)
{
   Response.Write(file.Url.ToString() + "<BR>");
   Response.Write(file.Length.ToString() + "<BR>");
}

O exemplo anterior Lista de URL e tamanho de cada arquivo dentro de pasta.

O exemplo requer using ( Imports na Visual Basic) para o espaço para nome Microsoft.SharePoint N:Microsoft.SharePoint.

Para copiar arquivos de uma localidade para outro, uso um do CopyTo a SPFile T:Microsoft.SharePoint.SPFile classe. No seguinte exemplo, a Page_Load Page_Load instancia um objeto SPWeb T:Microsoft.SharePoint.SPWeb para a atual contexto site. O Click manipulador de eventos itera através de todos os arquivos de pasta, clique em listagem o nome e tamanho (em quilobytes) de cada arquivo que excede um múltiplo do valor especificado pelo usuário em um caixa de texto e copiando o arquivo para um nomeado pasta Arquivo Morto.

                    Private mySite As SPWeb

Private Sub Page_Load(sender As Object, e As System.EventArgs)

    mySite = SPControl.GetContextWeb(Context)

End Sub 'Page_Load

Private Sub Button1_Click(sender As Object, e As System.EventArgs)

    Dim maxSize As Integer = Convert.ToInt32(TextBox1.Text)
    Dim myFolder As SPFolder = mySite.GetFolder("Shared Documents")
    Dim myFiles As SPFileCollection = myFolder.Files
    Dim file As SPFile

    For Each file In  myFiles

        If file.Length > maxSize * 1024 Then

            Response.Write(SPEncode.HtmlEncode(file.Name) & " :: " 
                & file.Length / 1024 & "kb<BR>")
            file.CopyTo("Archive/" & file.Name, True)

        End If

    Next file

End Sub 'Button1_Click
                    private SPWeb mySite;

private void Page_Load(object sender, System.EventArgs e)
{
   mySite = SPControl.GetContextWeb(Context);
}

private void Button1_Click(object sender, System.EventArgs e)
{
   int maxSize = Convert.ToInt32(TextBox1.Text);

   SPFolder myFolder = mySite.GetFolder("Shared Documents");
   SPFileCollection myFiles = myFolder.Files;

   foreach (SPFile file in myFiles)
   {

      if (file.Length>(maxSize*1024))
      {
         Response.Write(SPEncode.HtmlEncode(file.Name) + ": " 
             + file.Length/1024 + "kb<BR>");
         file.CopyTo("Archive/" + file.Name, true);
      }
   }
}

O exemplo, o CopyTo M:Microsoft.SharePoint.SPFile.CopyTo(System.String) método usa dois parâmetros, uma que especifica o destino URL para o arquivo copiado e o outro um Boolean valor que especifica se deseja substituir qualquer arquivo com o mesmo nome que está localizada de destino.

The previous example requires using directives (Imports in Visual Basic) for the Microsoft.SharePoint, Microsoft.SharePoint.Utilities, and Microsoft.SharePoint.WebControls namespaces.

O seguinte exemplo move todos os arquivos da lista de Shared Documents do atual site para outra pasta nomeado StorageFolder, sobrescrevendo qualquer arquivo com o mesmo nome que podem estar localizados não existe.

                    Dim mySite As SPWeb = SPControl.GetContextWeb(Context)
Dim myFolder As SPFolder = mySite.GetFolder("Shared Documents")
Dim myFiles As SPFileCollection = myFolder.Files
Dim i As Integer

For i = myFiles.Count - 1 To 0 Step -1

    myFiles(i).MoveTo("StorageFolder/" & myFiles(i).Name, True)

Next i
                    SPWeb mySite = SPControl.GetContextWeb(Context);
SPFolder myFolder = mySite.GetFolder("Shared Documents");
SPFileCollection myFiles = myFolder.Files;

for (int i = myFiles.Count - 1; i > -1; i--)
{
    myFiles[i].MoveTo("StorageFolder/" + myFiles[i].Name, true);
}

Como mostra o exemplo, quando os conjuntos forem modificados no decorrer da execução codificar excluindo ou movendo itens, o contador para Iterando através de coleção deve diminuir no valor com cada iteração.

O exemplo anterior requer using ( Imports na Visual Basic) para o Microsoft.SharePoint e espaços para nome Microsoft.SharePoint.WebControls N:Microsoft.SharePoint.WebControls.

Consulte também

Referência

Microsoft.SharePoint

Conceitos

Trabalhando com lista de objetos e coleções
Guia de Introdução Com programaticamente personalizar uma Web Site SharePoint em Visual Studio
A validação de segurança e fazer postagens para atualizar os dados
Elevação de privilégio