1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| FileInfo folderFile = new FileInfo(n.Attributes.GetNamedItem("filename").Value.Replace('/', '\\'));
XmlNode result = n.OwnerDocument.CreateElement("txs", "folder", "http://sourceforge.net/projects/txs");
XmlAttribute aname = n.OwnerDocument.CreateAttribute("name");
aname.Value = folderFile.Name;
result.Attributes.SetNamedItem(aname);
XmlAttribute afname = n.OwnerDocument.CreateAttribute("fullname");
afname.Value = folderFile.FullName.Replace('\\', '/');
result.Attributes.SetNamedItem(afname);
String f = folderFile.ToString();
int l = f.Length + 1;
String exts = "," + n.Attributes.GetNamedItem("extensions").Value + ",";
string [] subfolders = Directory.GetDirectories(f);
foreach(string subfolder in subfolders) {
XmlNode sfd = n.OwnerDocument.CreateElement("txs", "load", "http://sourceforge.net/projects/txs");
XmlAttribute sname = n.OwnerDocument.CreateAttribute("filename");
sname.Value = subfolder.Replace('\\', '/');
sfd.Attributes.SetNamedItem(sname);
XmlAttribute sform = n.OwnerDocument.CreateAttribute("format");
sform.Value = "folder";
sfd.Attributes.SetNamedItem(sform);
XmlAttribute sexts = n.OwnerDocument.CreateAttribute("extensions");
sexts.Value = n.Attributes.GetNamedItem("extensions").Value;
sfd.Attributes.SetNamedItem(sexts);
result.AppendChild(sfd);
}
string [] files = Directory.GetFiles(f);
foreach(string file in files) {
XmlNode sfd = n.OwnerDocument.CreateElement("txs", "file", "http://sourceforge.net/projects/txs");
XmlAttribute sname = n.OwnerDocument.CreateAttribute("name");
sname.Value = file.Substring(l);
sfd.Attributes.SetNamedItem(sname);
XmlAttribute sfname = n.OwnerDocument.CreateAttribute("fullname");
sfname.Value = file.Replace('\\', '/');
sfd.Attributes.SetNamedItem(sfname);
XmlAttribute sfl = n.OwnerDocument.CreateAttribute("size");
FileInfo fif = new FileInfo(file);
sfl.Value = fif.Length.ToString();
sfd.Attributes.SetNamedItem(sfl);
if(fif.Extension != "") {
String fife = "," + fif.Extension.Substring(1).ToLower() + ",";
if(exts.Contains(fife)) {
XmlNode fload = n.OwnerDocument.CreateElement("txs", "load", "http://sourceforge.net/projects/txs");
XmlAttribute flname = n.OwnerDocument.CreateAttribute("filename");
flname.Value = file.Replace('\\', '/');
fload.Attributes.SetNamedItem(flname);
XmlAttribute flform = n.OwnerDocument.CreateAttribute("format");
flform.Value = fif.Extension.Substring(1).ToLower();
fload.Attributes.SetNamedItem(flform);
sfd.AppendChild(fload);
}
}
result.AppendChild(sfd);
} |
Partager