Пример #1
0
        public static IEnumerable <SpecialFolderDescription> EnumSpecialFolders(DirectoryInfo di)
        {
            var fi = di.GetFiles(BootstrapperDirInfo.fileName).FirstOrDefault();

            if (fi != null)
            {
                SpecialFolderDescription sfd = null;
                try {
                    using (var fs = fi.OpenRead()) {
                        using (var xr = new XmlTextReader(fs)) {
                            var dirInfo = xr.Deserialize <BootstrapperDirInfo>();
                            sfd = new SpecialFolderDescription {
                                info = dirInfo, directory = di
                            };
                        }
                    }
                } catch (Exception err) {
                    log.WriteError(String.Format("failed to deserialize dir.info file with error:{0}", err.Message));
                    dbg.Break();
                }
                if (sfd != null)
                {
                    yield return(sfd);
                }
            }
            foreach (var sdi in di.GetDirectories())
            {
                foreach (var sfd in EnumSpecialFolders(sdi))
                {
                    yield return(sfd);
                }
            }
        }
Пример #2
0
		public static IEnumerable<SpecialFolderDescription> EnumSpecialFolders(DirectoryInfo di) {
			var fi = di.GetFiles(BootstrapperDirInfo.fileName).FirstOrDefault();
			if (fi != null) {
				SpecialFolderDescription sfd = null;
				try {
					using (var fs = fi.OpenRead()) {
						using (var xr = new XmlTextReader(fs)) {
							var dirInfo = xr.Deserialize<BootstrapperDirInfo>();
							sfd = new SpecialFolderDescription { info = dirInfo, directory = di };
						}
					}
				} catch (Exception err) {
					log.WriteError(String.Format("failed to deserialize dir.info file with error:{0}", err.Message));
					dbg.Break();
				}
				if (sfd != null) {
					yield return sfd;
				}
			}
			foreach (var sdi in di.GetDirectories()) {
				foreach (var sfd in EnumSpecialFolders(sdi)) {
					yield return sfd;
				}
			}
		}