转:http://blog.csdn.net/pclzr/article/details/7591741

SPFile对应于SharePoint对象模型中的文件,它的使用方法与SPFolder类大致相似。在获取SPFile对象的时候,仍是通过SPFileCollection来进行,形式也与获取SPFolder相同。在SPWeb中,也同样提供了SPWeb.GetFile方法来获取一个文件。

· GetFile(string url):参数为该文件所在的url。

此外,对于文档库列表中的列表条目来说,也可以通过SPListItem.File来得到该文件的对象(关于文档库,稍候会进一步加以说明)。

在删除文件的时候,同样使用SPFile.Delete方法。

· Delete(string url):参数为待删除文件的url。

添加一个文件与添加文件夹稍有不同,需要指定文件的内容,并且有如下三种不同的形式。

· Add(string url, byte[] content):第一个参数指定待添加文件的url,第二个参数中以字节流的方式指定文件的内容。在指定文件url的时候,既可以使用完整的url(需要保证该目录存在),也可以只使用文件名(即添加到当前文件夹中)。使用该方法添加文件的时候,如果该url已经存在一个文件,则该函数会引发一个异常;

· Add(string url, byte[] content, bool overwrite):与上一种形式不同,这种形式通过第三个参数来指定当文件已存在时,是否进行覆盖。当overwrite为true时,会对重名的文件进行覆盖;否则,如果出现重名的情况,仍然会引发一个异常;

· Add(string url, byte[] content, SPUser createdBy, SPUser lastModifiedBy, DateTime timeCreated, DateTime timeLastModified):添加文件的时候,根据后4个参数,指定文件的创建者、修改者、创建时间、修改时间。但是在使用这种形式的时候需要注意,该程序的执行者必须为网站的管理员,而且该形式只有在WSS网站上有效(在SPS网站上,该方法会产生一个“Access
Denied”错误)。

以上三种方法在创建成功之后均会直接返回一个SPFile类型的对象。

SPFile类中一些属性及其含义如下,这些属性一律为只读的。

· Author:文件的创建者,是一个SPUser类的对象(关于该类,会在下一节中进行说明);

· CheckedOutBy:文档库的文件允许进行签入和签出的操作,该属性为签出的用户;

· CheckedOutDate:文件签出的时间;

· CheckedInComment:文件签入时的评论内容;

· CheckOutExpires:文件签出的过期时间;

· CheckOutStatus:文件签出的状态,

· Exists:该文件是否存在;

· IconUrl:SharePoint为每种常用类型的文件都提供了图标,该属性中保存了该图标的图像文件的文件名(并非完整的url),这些图片一般保存在“_layouts/images/”目录下;

· InDocumentLibrary:表示该文件是否在文档库中;

· Item:如果该文件在文档库中,那么该属性(SPListItem类)获取该文件在该文档库列表中的列表条目对象;

· Length:文件的大小(以字节为单位);

· ModifiedBy:该文件的最后修改者;

· Name:该文件的文件名;

· ParentFolder:该文件所在的目录对象;

· Properties:一个Hashtable型的对象,包括该文件的一些常用属性(例如创建者、创建时间、修改者、修改时间、文件大小、文件的版本等信息);

· ServerRelativeUrl:该文件相对于服务器根地址的url;

· TimeCreated:文件创建的时间;

· TimeLastModified:文件最后修改的时间;

· Url:该文件相对于其所在网站的地址;

· Versions:SPFileVersionCollection类的对象,SharePoint的文档库可以支持文档的版本管理和控制,该属性中保存了该文件自创建以来的各个版本,同时保存了各版本的信息。(由于篇幅所限,不再一一列举SPFileVersion类的属性,有兴趣的读者请参考SDK。)

SPFile类中也同样提供了一些方法。

· CheckIn():将文件签入文档库;

· CheckOut():将文件从文档库中签出;

· CopyTo(string newUrl):将文件复制到一个新的url地址中;

· CopyTo(string newUrl, bool overwrite):将文件复制到新的url地址中,并指定是否覆盖同名文件;

· MoveTo(string newUrl):将文件移动到一个新的地址中;

· MoveTo(string newUrl, bool overwrite):将文件移动到一个新的地址中,并指定是否覆盖同名文件;

· OpenBinary():以byte[]的形式返回该文件的内容;

· SaveBinary(byte[] content):以参数为内容,保存该文件。

示例9-8】 该示例中演示了从本地上传文件到文档库的过程:

// 首先获取到SPWeb对象web

SPFolder folder = web.GetFolder("Shared Documents");

if(folder.Exists)

{

FileStream fs = new FileStream(@"C:\Demo.txt", FileMode.Open);

byte[] content = new byte[fs.Length];

fs.Read(content, 0, (int)fs.Length);

folder.Files.Add("Demo.txt", content);

fs.Close();

}

else

Console.WriteLine("Folder Not Exist!");

该程序中的FileStream类和FileMode枚举是在System.IO命名空间中

SPFile的使用的更多相关文章

  1. ORACLE的SPFILE与PFILE

    ORACLE中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件,可以分为两种类型.它们是在数据库实例启动时候加载的,决定了数据库的物理结构.内存.数据库的限制及系统大量的默认值.数据库的各种 ...

  2. Pfile VS Spfile (MOS Note 249664.1)

    ============================================================================== Until Oracle 8i DBAs ...

  3. ORACLE迁移votedisk,spfile以及OCRfile的方法

    在安装GUI时,创建了第一块ASM磁盘,命名为DATA1,上面存放了spfile文件,ocrfile文件,并且作为了vote盘.感觉名字和实际不符,容易搞混,所以想删除这个磁盘,直接删除会报错: OR ...

  4. 浅谈oracle10G spfile与pfile(转)

    转自:http://blog.csdn.net/onebigday/article/details/6108348,http://www.linuxidc.com/Linux/2012-11/7371 ...

  5. 如何删除或重置spfile中的参数

    在ORACLE中,修改spfile中的参数一般非常容易,那么如何删除spfile中的参数呢? 下面我们用一个案例来介绍一下,如何删除spfile中的参数,一种方法就是创建对应的pfile,删除对应的参 ...

  6. 【故障处理】告警日志报“ORA-01565 Unable To open Spfile”

    [故障处理]告警日志报"ORA-01565 Unable To open Spfile" 1.1  BLOG文档结构图 1.2  故障分析及解决过程 1.2.1  故障环境介绍 项 ...

  7. pfile 与 spfile

    启动方式与顺序: 启动顺序:dbs 下的 init --> dbs 下的 spfile 如果 pfile 中没有指定 spfile 参数,那么数据库以 pfile 方式启动 如果 pfile 中 ...

  8. oracle pfile spfile

    1.参数文件的定义.作用 oracle数据库通过一系列参数来对数据库进行配置.这些参数是以键-值对的形式来表 示的,如:MAXLOGFILES=50BACKGROUND_DUMP_DEST=C:DUM ...

  9. ORA-16179: incremental changes to "log_archive_dest_1" not allowed with SPFILE

    SQL> alter system set log_archive_dest_1='E:\arch ' scope=both; alter system set log_archive_dest ...

  10. RMAN备份与恢复之spfile

    1.备份spfile 有关控制文件及参数文件备份的几种形式: 单独备份控制文件及参数文件 RMAN> backup current controlfile; 备份数据文件时包含控制文件 RMAN ...

随机推荐

  1. 使用异步 I/O 大大提高应用程序的性能

    使用异步 I/O 大大提高应用程序的性能 学习何时以及如何使用 POSIX AIO API Linux® 中最常用的输入/输出(I/O)模型是同步 I/O.在这个模型中,当请求发出之后,应用程序就会阻 ...

  2. VirtualBox下导入CentOS后,无法上网

        从VirtualBox的"管理"菜单下,选择"导出虚拟电脑",存一个备份.用时,再从"管理"菜单下,选择"导入虚拟电脑&q ...

  3. POJ 3461 Oulipo(字符串匹配,KMP算法)

    题意:给出几组数据,每组有字符串W和T,问你W在T中出现几次. 思路:字符串长度很大,用KMP算法. 一开始写的是:调用KMP算法查找W在T中是否匹配,若匹配,则个数+1.则接下来T的索引移动相应的距 ...

  4. java基础知识回顾之javaIO类--File类

    File类是对文件系统中文件以及目录(文件夹)进行封装的对象,可以通过面向对象的思想来操作文件和目录(文件夹).File类保存文件或目录的各种元素的信息,包括文件名,文件长度,最后修改日期,是否可读, ...

  5. linux下用非root用户重启导致ssh无法连接的问题

    问题描述 安装好了centOS服务器,一直用Secure CRT工具通过ssh服务来远程连接linux,很方便的进行各种操作.今天偶然尝试了一下在非root的一般用户下执行重启服务器的命令,发现一般用 ...

  6. STL函数模板(即算法)一览

    查找算法 adjacent_find:找出一个串中第一个不符合次序的地方 find,find_if:找出第一个符合条件的元素 find_first_of:在一个串中寻找第一个与另一个串中任意一个元素相 ...

  7. 【PHP高效搜索专题(1)】sphinx&Coreseek的介绍与安装

    我们已经知道mysql中带有"%keyword%"条件的sql是不走索引的,而不走索引的sql在大数据量+大并发量的时候,不仅效率极慢还很有可能让数据库崩溃.那我们如何通过某些关键 ...

  8. static int和static final int的区别

    1.static变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的区别是: 对于静态变量在内 ...

  9. NewPascal(也许只是对FreePascal的一种封装)

    NewPascal is a breath of fresh air and long tradition! NewPascal offers a ready-to-be-used and up-to ...

  10. 嵌入式控制(0)----linux系统网络配置

    嵌入式系统本身具有操作系统的全部属性,但收到其硬件条件制约,故需要主机通过串口/网口等方式与其通信.今日下午的工作主要是linux系统的ssh传输配置,nfs服务器配置,tftp服务器配置. ip的概 ...