如何使用 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 获取文件大小?的主要内容,如果未能解决你的问题,请参考以下文章