if (opDialog_1.ShowDialog() == DialogResult.OK)
{
FileInfo f = new FileInfo(opDialog_1.FileName);
label1.Width = this.Width + 3;
label1.Text = (f.Length / 1024).ToString();
}
проверить файлы на идентичность
И второй вопрос: нужно ли создавать екземпляр класса, если я буду работать с OpenFileDialog?
Если размер одинаковый, то задачка из разряда O(n), то есть в худшем случае нужно просмотреть все байты обоих файлов, выбирайте на вкус:
1. линейный поиск первого несовпадающего байта
2. плевать на поиск, тупо считаем хеш-суммы
3. берем на угад 10 (100, 1000, % от размера) произвольных байт, сравниваем... вообщем нечто из разряда метода Монте-Карло.
4. строим генетический алгоритм: начальная популяция - пометка произвольных байтов файлов, сравнение по пометке, размножение - приписывание пометки соседним с помеченными элементам, отмирание уже помеченных у предыдущей популяции.
ну можно еще что-нибудь придумать
Код:
if (opDialog_1.ShowDialog() == DialogResult.OK)
{
label1.Text = FileInfo(opDialog_1.FileName).Length;
}
{
label1.Text = FileInfo(opDialog_1.FileName).Length;
}
Сори, у меня азы очень хромают... если можно как узнать размер файла отсюда?
Если переписать код:
Код:
Пиши в байтах размер.Или ещё что-нибудь придумай(типа f.Length/1024-f.Length\1024)
Цитата: RomOs
Код:
if (opDialog_1.ShowDialog() == DialogResult.OK)
{
FileInfo f = new FileInfo(opDialog_1.FileName);
label1.Width = this.Width + 3;
label1.Text = (f.Length / 1024).ToString();
}
{
FileInfo f = new FileInfo(opDialog_1.FileName);
label1.Width = this.Width + 3;
label1.Text = (f.Length / 1024).ToString();
}
Этот код верный. Вы создали экземпляр класс FileInfo, отвечающего за получение информации о файле, в частности о его размере. Размер файла возвращается в байтах. Поле Length - целочисленное, операция деления "/" тоже здесь целочисленная. У вас отбрасывается дробная часть. Попробуйте поставить не 1024, а 1024.0, указав тем самым компилятору, что деление будет на вещественное число. Хотя не знаю как C# на это отреагирует, возможно потребуется явное указание, что результат деления должен быть вещественным.