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
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