簡體   English   中英

為什么我在此代碼中獲得“參數無效”異常?

[英]Why am I getting “parameter is not valid” exception on this code?

private void button8_Click(object sender, EventArgs e)
{
    List<long> averages;
    long res = 0;
    _fi = new DirectoryInfo(subDirectoryName).GetFiles("*.bmp");
    averages = new List<long>(_fi.Length);
    for (int i = 0; i < _fi.Length; i++)
    {
        Bitmap myBitmaps = new Bitmap(_fi[i].Name);
        //long[] tt = list_of_histograms[i];
        long[] HistogramValues = GetHistogram(myBitmaps);
        res = GetTopLumAmount(HistogramValues,1000);
        averages.Add(res);
    }
}

例外是在線:

Bitmap myBitmaps = new Bitmap(_fi[i].Name);

您只是將文件名傳遞給Bitmap構造函數,但您實際上應該使用_fi[i].FullName將完整路徑傳遞給該文件_fi[i].FullName

@Lester是正確的答案(+1),但我確實想說你可以通過使用一些函數式編程結構縮短你的實現並使其更具可讀性:

var averages = new DirectoryInfo(subDirectoryName)
    .GetFiles("*.bmp")
    .Select(t => new Bitmap(t.FullName))
    .Select(GetHistogram)
    .Select(v => GetTopLumAmount(v, 1000))
    .ToList();

你試過.FullName嗎? 那應該包括整個目錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM