[c# winforms] пара dumb questions ( +1 новый d.q. по linq)
Process.Start с сохраненным имененм
2.
Process.Start с именем диры
ок, пасиб. ща попробую.
File getFile
{
File file = null;
var fileDialog = new OpenFileDialog;
if(fileDialog.ShowDialog == DialogResult.OK)
{
var filePath = fileDialog.FileName;
var fileInfo = new FileInfo(filePath);
var streamReader = new FileStream(filePath, FileMode.Open, FileAccess.Read);
try
{
var dataSize = Convert.ToInt32(streamReader.Length);
var data = new byte[dataSize];
streamReader.Read(data, 0, dataSize);
file = new File;
file.data = data; // ВОТ ТУТ Я ТУПО СУЮ ТУДА byte[]
file.name = fileInfo.Name;
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString;
}
}
return file;
}
File - это сгенеренный студией класс на основе таблицы в БД mssql. поле data - имеет тип image. Полученный этой функцией обьект без ругани добавляется в DataContext и нормально попадает в БД после SumbitChanges. А вот обратно его пока достать не получается.
void saveFile(DirectoryInfo _di, File _file)
{
var data = _file.data;
var _filePath = _di.FullName + @"\" + _file.name;
var dataSize = data.Length;
var _fs = new FileStream(_filePath, FileMode.OpenOrCreate, FileAccess.Write);
try
{
_fs.Write(data, 0, dataSize);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString;
}
finally
{
_fs.Close;
}
}
говорит что System.Data.Linq.Binary - это нифига не byte[].
если сделать var data = (byte)_file.data; - то тоже ругается.
Как нада сделать?
ps. В БД он нормально лежит, т.к с помощью кода примерно вот такого :
....
var _cmdString = "select data from Files where id=@id;";
var _cmd = new SqlCommand(_cmdString, _conn);
_cmd.Parameters.Add(new SqlParameter("@id", _id;
try
{
_conn.Open;
var r = _cmd.ExecuteReader;
while (r.Read
{
data = (byte[])r["data"];
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString;
}
finally
{
_conn.Close;
}
....
эта самая byte[] нормально достается из БД и сохраняется на диск.
позже:
по теме оказалось нада
code:--------------------------------------------------------------------------------
var data = _file.data.ToArray;
Оставить комментарий
Alena_08_11
1. есть byte[] в котором сидит типа файл (чаще всего картинка) как средствами NET сделать чтобы открылось окно дефолтного просмотрщика картинок для данной системы, с открытым этим файлом ? или окно дефолтного браузера с открытым этим файлом ?Или более общее : чтобы произошло действие, эквивалентное doubleclick'у пользователем по этому файлу лежащему в какой нить дире?
2. есть string с путём к дире (ну или уже DirectoryInfo как сделать чтобы открылось окно explorer с этой дирой ?
net 3.5 (хотя врядли это важно)