سؤال

لا يزال قليلا من n00b على SharpSVN، أنا أبحث في الحصول على بعض رمز بسيط لفتح مستودع SVN، وقراءة (على الأقل) المسار الكامل من جميع الملفات في مجلد معين.

ودعونا نقول أن هذا المجلد هو \ جذع \ المصدر

وأنا لا يبحثون عن الخروج أو ارتكابها، وقرأت للتو في قائمة

وأنا أبحث أيضا قراءة كافة الملفات، وليس فقط تغير منها.

هل كانت مفيدة؟

المحلول

وطيب يبدو أنني وجدت طريقة ..

        bool gotList;
        List<string> files = new List<string>();

        using (SvnClient client = new SvnClient())
        {
            Collection<SvnListEventArgs> list;

            gotList = client.GetList(projectPath, out list);

            if (gotList)
            {
                foreach (SvnListEventArgs item in list)
                {
                    files.Add(item.Path);
                }
            }
        }

نصائح أخرى

وكتب ذلك في عجلة من امرنا في المفكرة. عذرا.

SvnClient client = new SvnClient();
client.Authentication.DefaultCredentials = new NetworkCredential("svnuser", "svnpass");
SvnUriTarget folderTarget = new SvnUriTarget("https://mysvnserver.com/mysvnpath");
List<String> filesFound = getFolderFiles(client, folderTarget);

// GetFolderFiles
//   Function that, given a SvnClient and Target to a folder, returns a list of files
private List<String> getFolderFiles(SvnClient client, SvnTarget folderTarget)
{
    List<String> filesFound = new List<String>();
    List<SvnListEventArgs> listResults;

    if (client.GetList(folderTarget, out listResults))
    {
        foreach (SvnListEventArgs item in listResults)
            if (item.Entry.NodeKind == SvnNodeKind.File)
                filesFound.Add(item.Path);

        return filesFound;
    }
    else
       throw new Exception("Failed to retrieve files via SharpSvn");
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top