2017-08-07 9 views
-2

ディレクトリ内で使用可能なすべてのファイルのリストを作成しようとしています。各ファイルには個別のアイテムリストが必要です。リストを作成しましたが、すべてのファイルで使用可能なすべてのアイテムが表示されます。どうやってするの?この点で助けが必要です。 私はこのようにしていますが、すべてのファイルにすべての商品 "商品"を表示しています: コードの一部がここにあります: List products = new List();C#を使用してディレクトリ内の各ファイルのアイテムの特定のリストを作成

foreach (string file in fileList) 
    { 

     using (StreamReader sr = new StreamReader(file)) 
     { 
      string line; 
      while ((line = sr.ReadLine()) != null) 
      { 
       rows++; 
       if (line.StartsWith("Product")) 
       { 
        var val = line.Split(','); 

        upc = val[1]; 
        pName = val[3]; 

        products.Add(upc); 
        products.Add(pName); 

        productList = string.Join(",", products.ToArray()); 
+3

あなたのコード – derloopkat

+2

を共有してください '私は、ディレクトリで利用可能なすべてのファイルのためのリストを作成しようとしています。私は正直に分かりません – EpicKip

+0

'var files = Directory.GetFiles(path);'を使って、このフォルダ内のファイルの配列を取得できます。お役に立てれば。 – KamikyIT

答えて

0

あなたのコードでは、これらのclases

public class ProductFile 
{ 
    public string Name; 
    public List<Product> Products = new List<Product>(); 
} 

public class Product 
{ 
    public string Upc; 
    public string PName; 
} 

などを追加:

var productFiles = new List<ProductFile>(); 
foreach (string file in fileList) 
{ 
    var productFile = new ProductFile(){ Name = Path.GetFileName(file) }; 
    using (StreamReader sr = new StreamReader(file)) 
    { 

     string line; 
     while ((line = sr.ReadLine()) != null) 
     { 
      rows++; 
      if (line.StartsWith("Product")) 
      { 
       var val = line.Split(','); 
       var product = new Product() 
       { 
        Upc = val[1], 
        PName = val[3] 
       }; 
       productFile.Products.Add(product); //Adds a product 
      } 
     } 
    }; 
    productFiles.Add(productFile); //Adds a file 
} 
関連する問題