Looking for recommendations. Have a file in a document library with name x.txt. In a workflow code behind, I need to get the file to read its contents. What is the best/most efficient way to do this? Was thinking a linq query on the SPList.Item collection but might be off.
I'm not sure if I understand you correctly, but if you have the list, you could get your item like this
var myItem = myList.Items.Cast<SPListItem>().Where(n => n.File.Name == "x.txt").FirstOrDefault();
If you use linq to object, you always retrieve ALL records from DB. It is not good if you have got a lot of data. To reduce records you can use CAML query:
SPQuery query = new SPQuery(); query.Query = "<Where>" + "<Eq>" + "<FieldRef Name=\"FileLeafRef\"/>" + "<Value Type=\"Text\">" + fileName + "</Value>" + "</Eq>" + "</Where>"; SPListItem item = list.GetItems(query).FirstOrDefault();
In this case items are selected from DB by query and then you can get first item.