Как скачать файл по http?

Для того что бы скачать файл по протоколу http на C# потребуется написать всего несколько строчек и подключить пространство имен System.Net.

Самый простой, но не самый наглядный способ.

Просто как две строчки написать:

WebClient webClient = new WebClient();
webClient.DownloadFile("http://mysite.com/myfile.txt", @"c:\myfile.txt");


Но никакого отображения процесса загрузки файла не происходит, что конечно же не устраивает нетерпеливых пользователей.More...

Currently rated 4.8 by 6 people

  • Currently 4.833333/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

Как получить список всех файлов в директории?

Для реализации этой, казалось бы, тривиальной задачи идеально подходит рекурсия, например вот такая:

List<String> GetAllFiles(String aPath)
{
    List<String> _tmpFiles = new List<string>();
    _tmpFiles.AddRange(Directory.GetFiles(aPath));

    foreach (String dirPath in Directory.GetDirectories(aPath))
    {
        _tmpFiles.AddRange(GetAllFiles(dirPath));
    }

    return _tmpFiles;
}

Но оказывается, в случае, когда требуется просто получить список файлов (не применяя сложных условий) стоит использовать уже реализованные функции, в частности перегруженный вариант функции Directory.GetFiles с тремя параметрами:

Directory.GetFiles(_strPath, "*.*", SearchOption.AllDirectories)

P.S. Не забываем подключить  System.IO;

Currently rated 4.5 by 8 people

  • Currently 4.5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Как программно вставить изображение в Excel?

Иногда возникает необходимость вставить изображение непосредственно в документ Excel, к сожалению именно в документ, по определенным координатам, а не в конкретную ячейку возможна вставка такого объекта. Далее описано два возможных способа программной вставки картинки.

More...

Currently rated 5.0 by 3 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

Как прочитать данные из Excel файла?

Если необходимо просто получить несколько записей из Excel файла, то стоит воспользоваться ранним связыванием. Для этого необходимо подключить Microsoft.Office.Interop.Excel.dll и Office.dll.

More...

Currently rated 2.0 by 2 people

  • Currently 2/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,

Как прочитать данные из реестра?

Для того что бы прочитать данные из реестра Windows, например узнать куда установлен MapInfo, необходимо:

using Microsoft.Win32;
private String FRegisterKey = @"SOFTWARE\MapInfo\MapInfo\Professional"
private String FKeyValue = @"ProgramDirectory"
...
if (Registry.LocalMachine.OpenSubKey(FRegisterKey) != null)
{
InfoPath = Registry.LocalMachine.OpenSubKey(FRegisterKey).GetValue(FKeyValue).ToString();
...
}

Что бы записать значение:

Registry.LocalMachine.OpenSubKey([PathToSubKey]).SetValue([Param], [Value]);

P.S. Подробнее тут

Currently rated 4.0 by 1 people

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Как изменить кодировку строк?

Для преобразования строки из одной кодировки в другую в .Net используется класс System.Text.Encoding.

Например, нам необходимо прочитать текстовый файл, но мы знаем, что текст в нем хранится в кодировке Win1251.
Вот пример как это можно сделать:

 using (StreamReader _sr = new StreamReader(aFileInfo.FullName, Encoding.GetEncoding(1251)))
{
    String _strTmp = _sr.ReadLine()
    . . .
}

Но теперь надо сохранить изменения в тойже кодировке.
Это можно сделать вот так:

using (StreamWriter tw = new StreamWriter(aWriteFile.Create(), Encoding.GetEncoding(1251)))
{
    // Записываем шапку
    tw.WriteLine(String.Format("Проверка записи в кодировке Win1251"));
    . . .
    tw.Close();
}

P.S. Подробнее тут

P.P.S. И еще статья  Джоела Спольски о кодировках

Currently rated 5.0 by 3 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,

Как изменить региональные настройки?

А конкретнее, как преобразовать строку в число или как заменить точку на запятую, например "2.56", если разделитель разрядов в системе запятая.

Мнимое решение

Double tmp = Double.Parse(str.Replace('.', ','));

т.к. если в системе по умолчанию установленна точка а не запятая то мы опять получим исключение.
More...

Currently rated 3.5 by 4 people

  • Currently 3.5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Как обновить программу?

Простым вариантом обновления программы может служить bat файл который будет копировать содержимое сетевой папки в локальную, но после него остается командное окно которое портит общий вид...

Альтернативным способом может быть копирование необходимых файлов самой программой при запуске, но заменить запущенное приложение не получится, поэтому необходимо вынести функциональность которая копирует файлы в отдельный проект и из него после копирования запускать основное приложение.

Сначала настроим глобальные переменные (правильнее их получать из xml файла)

#region Data
// Папка с обновлениями
private String FUpdateFolder = @"\\srv\myprog";
// Куда копируем
private String FTargetFolder;
// Что запускаем
private String FRunFile = "myprog.exe";
#endregion

More...

Currently rated 2.5 by 2 people

  • Currently 2.5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

Как прочитать текстовый файл?

Для того что бы прочитать текстовый файл можно воспользоваться классом System.IO.StreamReader

FileInfo  aFileinfo = new FileInfo(@“c:\test.txt”);
// Открываем поток для чтения
using(StreamReader _sr = aFileinfo.OpenText())
{
    // Покуда есть что читать читаем построчно
    while (_sr.Peek() > -1)
    {
        List<String> _strArrTrack = new List<string>(_sr.ReadLine().Split(','));
        if (_strArrTrack.Count != 0)
        {
            // Обрабатываем данные
            Int32 test = Int32.Parse(_strArrTrack[0]);
        }
    }
}

А так можно записать данные в текстовый файл

Currently rated 3.0 by 3 people

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

Как перетащить форму мышью не за заголовок?

Как передвинуть форму с помощью мыши, если необходимо установить свойство FormBorderStyle в System.Windows.Forms.FormBorderStyle.None ?

Способ “В лоб”

private Int32 tmpX;
private Int32 tmpY;
private bool flMove = false;

private void frmMain_MouseDown(object sender, MouseEventArgs e)
{
      tmpX = Cursor.Position.X;
      tmpY = Cursor.Position.Y;
      flMove = true;
}

private void frmMain_MouseMove(object sender, MouseEventArgs e)
{
if (flMove)
{
      this.Left = this.Left + (Cursor.Position.X - tmpX);
      this.Top = this.Top + (Cursor.Position.Y - tmpY);

      tmpX = Cursor.Position.X;
      tmpY = Cursor.Position.Y;
}
}

private void frmMain_MouseUp(object sender, MouseEventArgs e)
{
      flMove = false;
}
 

More...

Currently rated 5.0 by 2 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,