4 using System.Collections.Generic;
\r
6 namespace NaGet.Packages
\r
9 /// 環境構築/移行を便利にするためのパッケージ名リストの表現クラス
\r
11 public class PackageCollectionFileData : System.Collections.ObjectModel.Collection<string>
\r
13 public PackageCollectionFileData()
\r
20 /// <param name="pkgs">パッケージ情報</param>
\r
21 public void loadPackages<T>(IEnumerable<T> pkgs) where T : Package
\r
23 foreach (Package pkg in pkgs) {
\r
24 if (this.IndexOf(pkg.Name) < 0) {
\r
31 /// このリストからパッケージのリストを得る
\r
33 /// <returns>パッケージのリスト</returns>
\r
34 public void generatePackages(PackageListsManager pkgMan, out IList<Package> pkgs, out IList<string> invalidPkgNames)
\r
36 pkgs = new List<Package>();
\r
37 invalidPkgNames = new List<string>();
\r
39 foreach (string pkgName in this) {
\r
40 Package pkg = pkgMan.availablePkgList.GetPackageForName(pkgName);
\r
42 if ((pkgMan.installedPkgList.GetPackageForName(pkgName) == null)
\r
43 && (pkgMan.systemInstalledPkgList.GetPackageForName(pkgName) == null)) {
\r
46 // すでにインストールされている場合は何もしない
\r
49 invalidPkgNames.Add(pkgName);
\r
59 /// <param name="stream">保存先</param>
\r
60 public void saveAs(StreamWriter stream)
\r
62 foreach (string name in this) {
\r
63 stream.WriteLine("{0}", name);
\r
70 /// <param name="filepath">保存先</param>
\r
71 public void saveAs(String filepath)
\r
73 using (FileStream stream = new FileStream(filepath, FileMode.Create)) {
\r
74 using (StreamWriter sw = new StreamWriter(stream, Encoding.UTF8)) {
\r
83 /// <param name="stream">読み取り元</param>
\r
84 public void load(StreamReader stream)
\r
88 while ((line = stream.ReadLine()) != null) {
\r
89 this.Add(line.Trim());
\r
96 /// <param name="stream">読み取り元</param>
\r
97 public void load(string filepath)
\r
99 using (FileStream fs = new FileStream(filepath, FileMode.Open)) {
\r
100 using (StreamReader sr = new StreamReader(fs, Encoding.UTF8)) {
\r