【问题标题】:How to get file size with SharpSvn?如何使用 SharpSvn 获取文件大小?
【发布时间】:2013-01-01 22:04:53
【问题描述】:

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

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

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

谢谢。

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

【问题讨论】:

  • 我想知道为什么这被否决了,如果你投了反对票,请留言...

标签: c# file size sharpsvn svn-server


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2017-05-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-15
        • 1970-01-01
        • 2023-02-07
        相关资源
        最近更新 更多