gpt4 book ai didi

c# - SharpSVN 不遍历所有子目录和文件

转载 作者:太空宇宙 更新时间:2023-11-03 10:57:02 25 4
gpt4 key购买 nike

按照此处找到的代码: How to check if file is under source control in SharpSvn?

我正在尝试制作一个小型实用程序,它将遍历指定的文件夹并打印出所有文件的状态。

    private void btnCheckSVN_Click(object sender, EventArgs e)
{
ParseSVNResults(CheckSVN());
}

private Collection<SvnStatusEventArgs> CheckSVN()
{
string path = @"C:\AMG\trunk\AMC";
if (!Directory.Exists(path))
return null;

DevExpress.Utils.WaitDialogForm wait = new DevExpress.Utils.WaitDialogForm();
wait.Caption = "Please wait, loading SVN file statuses. This may take a moment.";
wait.Caption += Environment.NewLine + path;
wait.Show();

SvnClient client = new SvnClient();
SvnStatusArgs sa = new SvnStatusArgs();
sa.Depth = SvnDepth.Infinity;
Collection<SvnStatusEventArgs> statuses;

client.GetStatus(path, sa, out statuses);

wait.Close();
return statuses;
}

private void ParseSVNResults(Collection<SvnStatusEventArgs> results)
{
if (results == null)
return;

int modified = 0;
int unversioned = 0;
foreach (SvnStatusEventArgs item in results)
{
memoEditSVNFiles.Text += item.LocalContentStatus.ToString() + " -- " + item.Path + Environment.NewLine;

if (item.LocalContentStatus.ToString() == "Modified")
modified++;
else if (item.LocalContentStatus.ToString() == "NotVersioned")
unversioned++;
}

memoEditSVNFiles.Text += Environment.NewLine + "Modified: " + modified + Environment.NewLine;
memoEditSVNFiles.Text += "Not Versioned: " + unversioned + Environment.NewLine;
memoEditSVNFiles.Text += "Total: " + results.Count;
}

当代码执行时,我总共得到 147 个文件和文件夹。实际文件夹有几千个文件。有没有可能是我查看了太多文件,而 SharpSVN 只是在一段时间后退出?

编辑;我只是尝试创建大约 100 个文本文件并将 30 个放入 3 个文件夹,然后“嵌套”它们。所以我有;

C:\AMG\trunk\test 其中有 ~30 个文件C:\AMG\trunk\test\Folder1 其中有 ~30 个文件C:\AMG\trunk\test\Folder1\Sub 其中还有 30

在不将此提交到存储库的情况下,当我在 C:\AMG\trunk\test 而不是代码片段中的给定路径上运行上述代码时,输​​出显示总共 1 个文件。

最佳答案

所以事实证明 SvnStatusArgs 类有一个默认为 false 的“RetrieveAllEntries” bool 标志。

顾名思义,将此设置为 true 会返回每个文件,无论是修改过的/未版本化的还是最新的。

在我原来的帖子中的 CheckSVN() 方法中增加了 1 行:

        SvnClient client = new SvnClient();
SvnStatusArgs sa = new SvnStatusArgs();
sa.Depth = SvnDepth.Infinity;
sa.RetrieveAllEntries = true; //the new line
Collection<SvnStatusEventArgs> statuses;

client.GetStatus(path, sa, out statuses);

关于c# - SharpSVN 不遍历所有子目录和文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19144031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com