Показаны сообщения с ярлыком Files. Показать все сообщения
Показаны сообщения с ярлыком Files. Показать все сообщения

Отслеживание изменений в файловой системе

9 комментариев:
      Для отслеживания изменений в заданном каталоге можно воспользоваться классом «FileSystemWatcher» из пространства имен System.IO. Данный класс предназначен для отслеживания изменений в файловой системе. Изменения можно отслеживать как на локальном компьютере, так и на удаленном. ОС Windows уведомляет компонент об изменениях файлов в буфере, созданном объектом «FileSystemWatcher». Если в течение короткого времени происходит много изменений, буфер может переполниться. В результате этот компонент не сможет отслеживать изменения в каталоге и будет давать только общие уведомления. Увеличение размера буфера с использованием свойства «InternalBufferSize» сопряжено с большими накладными расходами, поскольку он формируется не в выгружаемой памяти и не может быть подкачан с диска, поэтому буфер следует делать как можно меньше, в то же время он должен быть достаточно большим, чтобы не пропустить какие-либо события, связанные с изменениями файлов. Чтобы устранить переполнение буфера, необходимо использовать свойства «NotifyFilter» и «IncludeSubdirectories» для фильтрации ненужных уведомлений.
      Рассмотрим создание проекта отслеживающего изменения в выбранном пользователем каталоге с настройкой фильтров.


Читать далее

Представление любого каталога в виде древовидной структуры с использованием элемента управления «TreeView»

Комментариев нет:
      В .NET Framework присутствует класс «TreeView», который представляет визуальный элемент управления для отображения иерархических данных в древовидной структуре, содержащей элементы, которые можно развернуть и свернуть. Рассмотрим представление любого каталога в виде древовидной структуры с использованием элемента управления «TreeView».

Читать далее

Воспроизведение видео с Youtube.com и видео формата swf.

Комментариев нет:
Если вы хотите сделать демонстрацию ролика с Youtube или воспроизвести файл формата swf в вашем приложении, то этот пример именно для вас. Для реализации вам понадобятся две библиотеки AxInterop.ShockwaveFlashObjects.dll и Interop.ShockwaveFlashObjects.dll.

Читать далее

XCopy и C#

Комментариев нет:

Читать далее

Получаем список зарегистрированных расширений в Windows

Комментариев нет:

Читать далее

Проверка файла на занятость процессами

Комментариев нет:

Читать далее

Как заменить файл в C #

Комментариев нет:
      Иногда возникает необходимость полностью заменить файл. С File.Replace , заменить один файл на другой очень просто. Метод заменят содержимое одного на содержимое другого, и создает резервную копию исходнго файла. Мы могли бы реализовать это с помощью нескольких функций. Но File.Replace метод делает это автоматически.

Читать далее

Выборка файлов из директории и поддиректорий

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

Читать далее

Получение размера директории

Комментариев нет:
      Неудобство стандартного файлового менеджера операционной системы Windows заключается в дефиците необходимой информации при просмотре содержимого папок и файлов. Видеть размер папки часто необходимо непосредственно в окне Проводника, особенно когда Windows очень часто напоминает о необходимости освободить место на диске. Конечно же, всегда можно воспользоваться окном свойств объекта, но этот метод чрезвычайно трудоемкий, особенно когда необходимо определить размеры нескольких папок.

Читать далее

XCOPY in C#

Комментариев нет:
public bool ProcessXCopy()
{
    string XCopyArguments = "yourargumentshere";
    Process XCopyProcess = new Process();
    ProcessStartInfo XCopyStartInfo = new ProcessStartInfo();

    XCopyStartInfo.FileName = "CMD.exe ";

    //do not write error output to standard stream
    XCopyStartInfo.RedirectStandardError = false;
    //do not write output to Process.StandardOutput Stream
    XCopyStartInfo.RedirectStandardOutput = false;
    //do not read input from Process.StandardInput (i/e; the keyboard)
    XCopyStartInfo.RedirectStandardInput = false;

    XCopyStartInfo.UseShellExecute = false;
    //Dont show a command window
    XCopyStartInfo.CreateNoWindow = true;

    XCopyStartInfo.Arguments = "/D /c XCOPY " + XCopyArguments;

    XCopyProcess.EnableRaisingEvents = true;
    XCopyProcess.StartInfo = XCopyStartInfo;

    //start cmd.exe & the XCOPY process
    XCopyProcess.Start();

    //set the wait period for exiting the process
    XCopyProcess.WaitForExit(15000); //or the wait time you want

    int ExitCode = XCopyProcess.ExitCode;
    bool XCopySuccessful = true;

    //Now we need to see if the process was successful
    if (ExitCode > 0 & !XCopyProcess.HasExited)
    {
        XCopyProcess.Kill();
        XCopySuccessful = false;
    }

    //now clean up after ourselves
    XCopyProcess.Dispose();
    StartInfo = null;
    return XCopySuccessful;
}
Взято с http://www.dreamincode.net


Получение размера файла

Комментариев нет:
      В этой инструкции будет описано как получить размер выбранного вами файла через класс «OpenFileDialog», реализующего открытие диалогового окна для выбора файла.

Читать далее

Распаковка Zip архива

Комментариев нет:
using System.IO; 
using System.IO.Compression;

public void ungzip(string path, string decomPath, bool overwrite)
{
//for overwriting purposes
   if (File.Exists(decomPath))
   {
      if (overwrite)
      {
         File.Delete(decomPath);
      }
      else
      {
         throw new IOException("The decompressed path you specified already exists and cannot be overwritten.");
      }
   }
   //create our file streams
   GZipStream stream = new GZipStream(new FileStream(path, FileMode.Open, FileAccess.ReadWrite), CompressionMode.Decompress);
   FileStream decompressedFile = new FileStream(decomPath, FileMode.OpenOrCreate, FileAccess.Write);
   //data represents a byte from the compressed file
   //it's set through each iteration of the while loop
   int data;
   while ((data = stream.ReadByte()) != -1) //iterates over the data of the compressed file and writes the decompressed data
   {
      decompressedFile.WriteByte((byte)data);
   }
   //close our file streams 
   decompressedFile.Close();
   stream.Close();
}
Взято с http://www.dreamincode.net

Дата создания и изменения файла

1 комментарий:
using System;
using System.Windows.Forms;
using System.IO;

public class Example15_3 
{
    [STAThread]
  public static void Main() 
  {

    // create and show an open file dialog
    OpenFileDialog dlgOpen = new OpenFileDialog();
    if (dlgOpen.ShowDialog() == DialogResult.OK)
    {
      // use the File class to return info about the file
      string s = dlgOpen.FileName;
      Console.WriteLine("Filename " + s);
      Console.WriteLine(" Created at " + File.GetCreationTime(s));
      Console.WriteLine(" Accessed at " + 
       File.GetLastAccessTime(s));
    }
  }
}
Взято с http://www.java2s.com/Code/CSharp/File-Stream/GetfileCreationTime.htm

Удаление файлов

Комментариев нет:
using System;
using System.IO;

namespace FileDelete
{
  public class DeletingFiles {
    static void Main(string[] args)
    {
      FileInfo MyFile = new FileInfo(@"c:\Test.txt");

      MyFile.Create();
      MyFile.Delete();
    }
  }
}
Взято с http://www.java2s.com/Code/CSharp/File-Stream/DeletingFiles.htm

Чтение атрибутов файла

Комментариев нет:
using System;
using System.IO;

class MainClass {
    static void Main() {
        FileInfo file = new FileInfo("data.txt");

        Console.WriteLine(file.Attributes.ToString());

        if (file.Attributes == FileAttributes.ReadOnly) {
            Console.WriteLine("File is read-only (faulty test).");
        }

        if ((file.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly) {
            Console.WriteLine("File is read-only (correct test).");
        }
    }
}
Взято с http://www.java2s.com/Code/CSharp/File-Stream/CheckfileAttribute.htm

Количество строк в текстовом файле

Комментариев нет:
using System;
using System.Diagnostics.Contracts;


public class TextUtilities
{
    public static int GetLineCount(String text)
    {
        int lcnt = 1;
        for (int i = 0; i < text.Length; i++)
        {
            if (text[i] == '\n')
                lcnt += 1;
        }
        return lcnt;
    }

    public static int GetFirstCharIndexFromLineIndex(string text, int lineIndex)
    {
        if (text == null)
            throw new ArgumentNullException("text");
        if (lineIndex <= 0)
            return 0;

        int currentLineIndex = 0;
        for (int i = 0; i < text.Length - 1; i++)
        {
            if (text[i] == '\n')
            {
                currentLineIndex += 1;
                if (currentLineIndex == lineIndex)
                    return Math.Min(i + 1, text.Length - 1);
            }
        }

        return Math.Max(text.Length - 1, 0);
    }
    public static int GetLastCharIndexFromLineIndex(string text, int lineIndex)
    {
        if (text == null)
            throw new ArgumentNullException("text");
        if (lineIndex < 0)
            return 0;

        int currentLineIndex = 0;
        for (int i = 0; i < text.Length - 1; i++)
        {
            if (text[i] == '\n')
            {
                if (currentLineIndex == lineIndex)
                    return i;
                currentLineIndex += 1;
            }
        }

        return Math.Max(text.Length - 1, 0);
    }
}
Взято с http://www.java2s.com/Code/CSharp/File-Stream/Returnstherawnumberofthecurrentlinecount.htm

Запись и чтение текстовых файлов

Комментариев нет:
using System;
using System.IO;
using System.Text;

public class TextFileTest {

    private static void Main() {
        FileStream fs = new FileStream("test.txt", FileMode.Create);

        StreamWriter w = new StreamWriter(fs, Encoding.UTF8);

        w.WriteLine(1.2M);
        w.WriteLine("string");
        w.WriteLine('!');
        w.Flush();
        w.Close();
        fs.Close();

        fs = new FileStream("test.txt", FileMode.Open);
        StreamReader r = new StreamReader(fs, Encoding.UTF8);

        Console.WriteLine(Decimal.Parse(r.ReadLine()));
        Console.WriteLine(r.ReadLine());
        Console.WriteLine(Char.Parse(r.ReadLine()));

        r.Close();
        fs.Close();
    }
}
Взято с http://www.java2s.com/Code/CSharp/File-Stream/ReadandWriteaTextFile.htm

Копирование папки с вложениями на C#

2 комментария:
    Привожу пример реализации копирования папки с содержимым, довольно простой функции, при помощи System.IO.DirectoryInfo.

Читать далее

Получение имен файлов при перетаскивании их в целевые объекты пользовательского интерфейса

Комментариев нет:
      Перетаскиванием обычно называют метод передачи данных, который реализуется с помощью мыши (или другого указывающего устройства) для выбора одного или нескольких объектов и перетаскивания их в целевые объекты пользовательского интерфейса. События и методы необходимые для операций перетаскивания, определяются в классе «DragDrop».
      Для включения отслеживания событий «Drag and Drops», необходимо установить в элементе управления свойство «AllowDrop» в «true» и использовать одно или несколько следующих событий:

  • DragEnter - Происходит при завершении операции перетаскивания;
  • DragOver - Происходит, когда элемент перетаскивается с помощью мыши в клиентскую область этого элемента;
  • DragLeave - Происходит, когда объект перетаскивается на элемент управления;
  • DragDrop - Происходит, когда объект перетаскивается за пределы элемента управления;
  • GiveFeedback - Происходит, когда элемент перетаскивается с помощью мыши. Система запрашивает у элемента управления обеспечения обратной совместимости с этим эффектом;
  • QueryContinueDrag - Происходит при перетаскивании элемента. Система опрашивает, можно ли продолжать операцию перетаскивания мышью.
      Чтобы обработать перетаскивание одного или нескольких файлов внутрь элемента управления, необходимо обработать два события: «DragEnter» и «DragDrop». В «DragEnter» выполняется проверка, что перетаскиваемый элемент имеет тип «DataFormats.FileDrop». Если данное условие выполняется, то операция перетаскивания разрешается с установкой значения «DragDropEffects.All», иначе «DragDropEffects.None», указывающее, что целевой объект не принимает данные.
Событие «DragDrop» получает список файлов для помещения в элемент с помощью метода «GetData» и добавляет их в массив строк. Каждый элемент массива будет содержать полный путь и имя к каждому файлу, помещенному в элемент управления.
      В данной статье рассмотрено обнаружение перетаскивания объектов в приложения Windows Forms с использованием .NET Framework.


Читать далее