Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Файлы из потока, сохранение файлов из потока 
:(
    Опции темы
starostin
Дата 14.4.2011, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 28.9.2009
Где: Ярославль

Репутация: 1
Всего: 1



Может зря флужу, но не могу найти способа, что бы получить из потока файлы, то есть есть stream из которого приходит набор файлов различных разширений, и я что то вобще не понимаю как это всё перевести в файлы в какую-то дирректорию?
PM MAIL ICQ Skype GTalk Jabber MSN   Вверх
mihryak
Дата 14.4.2011, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 3
Всего: 36



что за поток-то? кто и как формирует?
PM MAIL ICQ   Вверх
starostin
Дата 15.4.2011, 08:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 28.9.2009
Где: Ярославль

Репутация: 1
Всего: 1



Формирует моя служба, интерфейс
Код

[ServiceContract]
    public interface IService1
    {
        [OperationContract]
        string[] GetData();

        [OperationContract]
        Stream GetFile(string File);
}

его реализация в службе
Код

string[] IService1.GetData()
        {
            string SertificateFullWay = @"..\ForClient\";// + name;
            string[] ListFile = Directory.GetDirectories(SertificateFullWay);
            return ListFile;
        }

        Stream IService1.GetFile(string namefile)//!!!ВОТ ЕНТОТ ПОТОК :)
        {
            FileInfo Finfo = new FileInfo(namefile);
            if (!Finfo.Exists)
            {
                using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"..\Log.txt", true))
                {
                    file.WriteLine(DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss") + " Не найдён файл " + namefile);
                }
            }
            FileStream fs = null;
            try
            {
                fs = new FileStream(namefile, FileMode.Open, FileAccess.Read, FileShare.Read);
            }
            catch
            {
                if (fs != null)
                    fs.Close();
            }

            return fs;
        }


Это сообщение отредактировал(а) starostin - 15.4.2011, 08:08
PM MAIL ICQ Skype GTalk Jabber MSN   Вверх
mihryak
Дата 15.4.2011, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 3
Всего: 36



что-то мне подсказывает, что не будет это никак работать
погугли на тему WCF Streaming
вот, к примеру

если файл не особо большой, то проще и удобнее его передать в виде byte[]

Это сообщение отредактировал(а) mihryak - 15.4.2011, 12:37
PM MAIL ICQ   Вверх
starostin
Дата 15.4.2011, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 28.9.2009
Где: Ярославль

Репутация: 1
Всего: 1



Файл не больше 20 килобайт. Пример информативный, но из него я всё равно не вижу как полученный поток или массив бит так сказать .ToFile()

Это сообщение отредактировал(а) starostin - 15.4.2011, 13:35
PM MAIL ICQ Skype GTalk Jabber MSN   Вверх
mihryak
Дата 15.4.2011, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 3
Всего: 36



Цитата(starostin @  15.4.2011,  14:05 Найти цитируемый пост)
Файл не больше 20 килобайт

ну тогда нафига вообще стримы?
в сервисном методе
Код

public byte[] GetFileContent(string filename)
{
    return File.ReadAllBytes(filename);
}

при вызове
Код

File.WriteAllBytes(newFilename, service.GetFileContent(filename));


что и для чего ты пытаешься сделать?

Это сообщение отредактировал(а) mihryak - 15.4.2011, 13:54
PM MAIL ICQ   Вверх
starostin
Дата 18.4.2011, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 28.9.2009
Где: Ярославль

Репутация: 1
Всего: 1



Ну в общем простой сервис которому в метод приходит стринг, а в ответ отсылается зип. 
Цитата
Код

File.WriteAllBytes(newFilename, service.GetFileContent(filename));


в гетфайлконтент не просекаю имя чего писать.
Ещё вот тут же спрошу что бы тем не флудить, почему то тестовый клиент пишет что нет доступа к методанным, вот мой конгиф, может подскажете что не так
Код

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.web>
    <compilation debug="true" />
  </system.web>
  <system.serviceModel>
    <services>
      <service name="SertificateOutService.Service1" behaviorConfiguration="SertificateBehavior">
        <host>
          <baseAddresses>
            <add baseAddress = "http://localhost:8732/Sertificate" />
          </baseAddresses>
        </host>
        <endpoint address ="" binding="basicHttpBinding" contract="SertificateOutService.IService1">
          <identity>
            <dns value="localhost"/>
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="SertificateBehavior">
          <serviceMetadata httpGetEnabled="True"/>
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

PM MAIL ICQ Skype GTalk Jabber MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




[ Время генерации скрипта: 0.1094 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.