/ проследяване на промяната на размера на файла в C # [дубликат] - c #

проследяване на промяната на размера на файла в C # [дубликат] - c #

Възможно дублиране:
C # събития за промяна на файлове

Искам да проследя конкретен размер на файла, когато годостигнете определен размер с помощта на C # има ли начин да се добави манипулатор на събития за промяна на размера на файла или трябва ли да се стартира безкраен процес в нишка, която продължава да проверява размера на файла? Благодаря

Отговори:

8 за отговор № 1

Използвай FileSystemWatcher да гледате промени във файла си. Когато се промени, вземете размера. Например:

var fsw = new FileSystemWatcher(@"C:pathtoyourfile");
fsw.Changed += TheFileChanged;


private void TheFileChanged(object sender, FileSystemEventArgs e)
{
if (e.ChangeType == WatcherChangeTypes.Changed)
{
var info = new FileInfo(e.FullPath);
var theSize = info.Length;
}
}

Когато приключите с проследяването на промените, изхвърлете файла си FileSystemWatcher.


3 за отговор № 2

Можете да използвате a FileSystemWatcher и да се справя Changed събитие. Тогава ще трябва да сравните размера на файла само когато е необходимо.

FileSystemWatcher-Tutorial


1 за отговор № 3

Искате да използвате a FileSystemWatcher, Това може да се използва за повишаване на събитие при промяна на файл. Типичната му употреба би била нещо като това

// Create a new FileSystemWatcher and set its properties.
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = args[1];

// Watch for changes in LastAccess and LastWrite times, and
// the renaming of files or directories.
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
// Only watch text files.
watcher.Filter = "*.txt";

// Add event handlers.
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.Created += new FileSystemEventHandler(OnChanged);
watcher.Deleted += new FileSystemEventHandler(OnChanged);
watcher.Renamed += new RenamedEventHandler(OnRenamed);

// Begin watching.
watcher.EnableRaisingEvents = true;

След това добавете съответния EventHandlerс

// Define the event handlers.
private static void OnChanged(object source, FileSystemEventArgs e)
{
// Specify what is done when a file is changed, created, or deleted.
Console.WriteLine("File: " +  e.FullPath + " " + e.ChangeType);
}

private static void OnRenamed(object source, RenamedEventArgs e)
{
// Specify what is done when a file is renamed.
Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath);
}

Надявам се това да помогне.


1 за отговор № 4

употреба FileSystemWatcher клас и Changed събитие.

Също така има наречен страхотен проект .NET File System Watcher.

въведете описанието на изображението тук