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

Posted

技术标签:

【中文标题】如何使用 SharpSvn 获取文件大小?【英文标题】:How to get file size with 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 是否提供此功能?

【问题讨论】:

我想知道为什么这被否决了,如果你投了反对票,请留言... 【参考方案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 并检查文件大小,但这对于目录列表来说会相当昂贵..

【讨论】:

以上是关于如何使用 SharpSvn 获取文件大小?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 获取文件大小

Python:如何获取 PyQt5 中选定文件的文件大小?

如何使用PHP在ftp服务器上获取文件大小?

如何在 Chrome 扩展中使用 Javascript 获取文件大小?

下载前如何获取文件大小

Node.js如何获取文件大小