Я новичок в C# и новичок в Visual Studio. Я на полпути к 16-недельному занятию в C# с использованием Visual Studio. Я чувствовал, что, возможно, научился достаточно, чтобы понять этот кусок кода с работы и изменить его. До сих пор я был в состоянии понять большую часть этого (после многих часов, и с помощью Google много). Однако есть несколько мест, которые меня озадачили ... Или, может быть, оригинальный программист не использовал очень хорошую логику c? Я не знаю ... См. Код ниже:
//This is just a piece of the code... there are hundreds of lines of code above this
private static void OnSizeChange(object source, FileSystemEventArgs e)
{
try
{
// SET PATHS FROM WATCHER
String filePath = e.FullPath;
FileInfo infoForPath = new FileInfo(e.FullPath);
//CHECK FOR TEXT FILE IN ORDER TO VERIFY SIZE TO CONFIRM NEW EMPTY FILE WAS NOT CREATED
String txtExt = ".txt";
Boolean isTxt = e.FullPath.Contains(txtExt);
//Length gets the size, in bytes, of the current file.
if (!isTxt && infoForPath.Length > 5 || isTxt && infoForPath.Length > 0)
Что вы не можете увидеть здесь, так это то, что файл будет либо в формате .txt, либо в формате .csv. У меня вопрос по поводу оператора if.
Что такое проверка оператора if?
Из того, что я могу собрать, он проверяет, есть ли ".txt" в пути к файлу && длина файла в байтах равна "> 5" (для файла без .txt) или "> 0" (для файла .txt).
В чем причина "5" и "0"?
Есть ли какая-то внутренняя причина для этих чисел, относящихся к файлам .txt и .csv?
Если это поможет, я нашел этот код в Интернете, который похож и может использовать для тестирования, я думаю, из C# приложения командной строки.
using System;
using System.IO;
class Program
{
static void Main()
{
const string fileName = @"C:\programs\file.txt";
// Part 1: create new FileInfo get Length.
FileInfo info = new FileInfo(fileName);
long length = info.Length;
// Part 2: print length in bytes.
Console.WriteLine("LENGTH IN BYTES: {0}", length);
}
}
Output
LENGTH IN BYTES: 60