If you know the document library name, you can do it. I did this sometimes back. Hope the code still works :) If not just try along these lines.
using SPC = Microsoft.SharePoint.Client;
using (SPC.ClientContext context = new SPC.ClientContext(siteUrl))
{
context.Credentials = new NetworkCredential("username", "password");
SPC.Web myWeb = context.Web;
context.Load(myWeb, website => website.Title);
context.ExecuteQuery();
SPC.List documentsList = myWeb.Lists.GetByTitle("Sample Documents");
context.Load(documentsList);
context.ExecuteQuery();
SPC.ListItemCollection listItemCollection = documentsList.GetItems(new SPC.CamlQuery());
context.Load(listItemCollection);
context.ExecuteQuery();
foreach (SPC.ListItem item in listItemCollection)
{
SPC.FileInformation fileInfo = SPC.File.OpenBinaryDirect(context, item["FileRef"].ToString());
using (MemoryStream memoryStream = new MemoryStream())
{
CopyStream(fileInfo.Stream, memoryStream);
Byte[] retrievedFile= memoryStream.ToArray();
string outFileName = @"C:\temp\test\" + item["FileLeafRef"].ToString();
File.WriteAllBytes(outFileName, retrievedFile);
}
}
}