WSS3SDK之:如何读取,拷贝和移动文件
我们可以通过SPWeb类的GetFolder方法返回某个特定的文件夹,然后访问其中某个文件。在实例化SPWeb对象后(如mySite),使用SPFolder myFolder=mySite.GetFolder("Shared Documents")(对于VB 2005为 Dim myFolder As SPFolder = mySite.GetFolder("Shared Documents"))来返回网站中的共享文档(Shared Documents)文件夹。
下面的例子返回文件夹中文件的集合,并显示文件信息。
VB
C#
我们需要引用Microsoft.SharePoint命名空间。
如果要把文件从一个位置拷贝到别的地方,可以使用SPFile类的CopyTo方法。下面的例子在Page_Load事件处理程序中实例化了当前站点上下文的SPWeb对象。在Click事件处理程序中,遍历了整个文件夹,列出各文件的文件名和大小(以kb为单位),对于大小超过用户在textbox中指定值的文件,将拷贝一份到Archive文件夹。
VB
C#
您需要引用Microsoft.SharePoint,Microsoft.SharePoint.Utilities,Microsoft.SharePoint.WebControls命名空间。
下面的例子将移动共享文档(Shared Documents)中的所有文件夹到名为StorageFolder文件夹,并覆盖已存在的同名文件。
VB
C#
该代码的运行需要引用Microsoft.SharePoint和Microsoft.SharePoint.WebControls命名空间。
下面的例子返回文件夹中文件的集合,并显示文件信息。
VB
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
Dim file As SPFile
For Each file In myFiles
Response.Write(file.Url.ToString() & "<BR>")
Response.Write(file.Length.ToString() & "<BR>")
Next file
C#
SPFileCollection myFiles = myFolder.Files;
foreach (SPFile file in myFiles)
{
Response.Write(file.Url.ToString() + "<BR>");
Response.Write(file.Length.ToString() + "<BR>");
}
上面的例子列出了文件夹中每个文件的URL和大小。foreach (SPFile file in myFiles)
{
Response.Write(file.Url.ToString() + "<BR>");
Response.Write(file.Length.ToString() + "<BR>");
}
我们需要引用Microsoft.SharePoint命名空间。
如果要把文件从一个位置拷贝到别的地方,可以使用SPFile类的CopyTo方法。下面的例子在Page_Load事件处理程序中实例化了当前站点上下文的SPWeb对象。在Click事件处理程序中,遍历了整个文件夹,列出各文件的文件名和大小(以kb为单位),对于大小超过用户在textbox中指定值的文件,将拷贝一份到Archive文件夹。
VB
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 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
C#
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);
}
}
}
该例中,CopyTo方法有两个参数,一个指定拷贝的目标URL地址,另一个布尔值用于指定是否覆盖目标文件夹中已有的同名文件。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);
}
}
}
您需要引用Microsoft.SharePoint,Microsoft.SharePoint.Utilities,Microsoft.SharePoint.WebControls命名空间。
下面的例子将移动共享文档(Shared Documents)中的所有文件夹到名为StorageFolder文件夹,并覆盖已存在的同名文件。
VB
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
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
C#
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);
}
如上所示,当集合由于代码执行删除或移动项目而改变时,用于遍历集合的计数器必须采用递减。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);
}
该代码的运行需要引用Microsoft.SharePoint和Microsoft.SharePoint.WebControls命名空间。
分类:
SharePoint
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!