string fileName = e.Name; string[] parts = fileName.Split('_'); string barcode = parts[1]; string time = DateTime.Now.ToString("yyyy-MM-dd"); if (fileName.Contains("PASS") && fileName.Contains(barcode) && goodBarcodeList.Contains(barcode)) {System.IndexOutOfRangeException:“索引超出了数组界限。”怎么修改,文件名中含有字母,数字,下划线等特殊符号
时间: 2024-02-14 19:09:04 浏览: 112
codec_lib1.0.4999.1.zip_barcode_条码
这个错误是因为在对文件名进行拆分时,拆分出来的部分数量不够,导致访问了一个不存在的数组元素。这可能是因为文件名中没有符合条件的部分,或者是符合条件的部分数量不够。
你可以在拆分前先检查一下拆分出来的部分数量,如果不够就不要访问对应的元素。例如可以使用以下代码:
```
string fileName = e.Name;
string[] parts = fileName.Split('_');
if (parts.Length >= 2) {
string barcode = parts[1];
string time = DateTime.Now.ToString("yyyy-MM-dd");
if (fileName.Contains("PASS") && fileName.Contains(barcode) && goodBarcodeList.Contains(barcode)) {
// do something
}
}
```
另外,特殊符号可能会影响拆分的结果,你可以尝试使用正则表达式或其他方法来进行文件名的解析。
阅读全文