如何使用SharpSvn获取文件大小



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

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

因此,对于每个项目,我获得有关名称,路径,url…但我也需要知道它的大小。那么,是否有任何方法可以使用SharpSvn从svn服务器获取此信息?

谢谢。

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

可以在svn中检索文件大小,因为乌龟svn可以在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;

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

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

相关内容

  • 没有找到相关文章

最新更新