如何使用SharpSvn获取文件大小?

时间:2013-01-01 22:04:53

标签: c# file size sharpsvn svn-server

我正在使用SharpSvn(C#)在网页上显示存储库内容的模块。 为了获得我正在使用的网址内容列表:

(client.GetList(new Uri(url), out contents);
foreach (SvnListEventArgs item in contents)
{
    //...Iterates...
}

因此,对于每个项目,我都会获得有关名称,路径,网址的信息...... 但我也需要知道它的大小。那么有没有办法从svn服务器获取这些信息,使用SharpSvn?

感谢。

编辑: DJ KRAZE的回答让我意识到我的问题不够明确。该产品是类似Dropbx的网站,所有svn(授权)用户都可以在网站上查看和浏览存储库。所以这段代码应该在svn服务器上运行。 例如 - 用户从它自己的PC(用乌龟,例如)添加文件,然后提交。后来他想在网上看到这些文件(再次,就像dropbox一样),以及它们的大小。 sharpsvn是否提供此功能?

3 个答案:

答案 0 :(得分:3)

可以在svn中检索文件大小,因为tortoiseSVN能够在repo浏览器中列出文件的大小。这是C#代码:

//tested on SharpSVN 1.8009.3299.43
SvnListArgs arg = new SvnListArgs();
arg.Revision = new SvnRevision(2); //the revision you want to check
arg.RetrieveEntries = SvnDirEntryItems.Size;

client.GetList(target, arg, out list);
long sizeInBytes = list[0].Entry.FileSize;

答案 1 :(得分:0)

Shay__你得到它们后会使用文件路径..?

using System.IO;


(client.GetList(new Uri(url), out contents);
foreach (SvnListEventArgs item in contents)
{
    //FileInfo object and get the Length.
  FileInfo fi = new FileInfo(item);
  long fileLength = fi.Length;
      .....
    //once done with what you want Null the FileInfo Object
    fi = Null;
}

答案 2 :(得分:-1)

Subversion不提供获取文件大小的方法。执行此操作的唯一方法是运行Export并检查文件大小,但这对于目录列表来说相当昂贵。