Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > как узнать размер файла?


Автор: NilovSerge 6.5.2008, 12:11
Всем привет!
  А как узнать размер файла? В классе File ничего подобного я не нашел...
Можно сделать наподобе:
  
Код

File.ReadAllBytes(FileName).Length

 - но если файл большой - то он долго работает

Пробую так :
Код

        FileStream fs = new FileStream(FileName, FileMode.Open);
        long L = fs.Length;
        fs.Close();
        return L;

и fs.Length постоянно возвращает 0 на ненулевых файлах smile 
    Есть каки-то другие методы?

              Заранее спасибо...

Автор: vponomarov 6.5.2008, 12:25
NilovSerge, попробуй так:
Код

System.IO.FileInfo f = new System.IO.FileInfo(FileName);
return f.Length;

Автор: DZeus 6.5.2008, 13:32
Код

DirectoryInfo srcDifInfo = new DirectoryInfo(srcCatalog);
FileInfo[] file = srcDifInfo.GetFiles("somefile.txt");
return file.Length;


Код

using System.IO;


не забудь...

Автор: vponomarov 6.5.2008, 14:56
DZeus, твой код возвращает количество файлов в указаном каталоге smile 

Автор: DZeus 6.5.2008, 20:34
Цитата(vponomarov @  6.5.2008,  14:56 Найти цитируемый пост)
DZeus, твой код возвращает количество файлов в указаном каталоге smile  


А так?  smile 

Код

DirectoryInfo srcDifInfo = new DirectoryInfo(srcCatalog);
FileInfo[] file = srcDifInfo.GetFiles("somefile.txt");
for(int fileCount = 0; fileCount < file.Length; fileCount++)
{
     return file[fileCount].Length;
}


Автор: vponomarov 6.5.2008, 22:08
Цитата(DZeus @  6.5.2008,  20:34 Найти цитируемый пост)
А так?   

так работать конечно будет smile 
вот только смысла в коде не много, ты уж извени smile 
во-первых, GetFiles вернет максимум одно значение, так что как минимум стоит писать
Код

DirectoryInfo srcDifInfo = new DirectoryInfo(srcCatalog);
FileInfo[] file = srcDifInfo.GetFiles("somefile.txt");
if (file.Length>0)
     return file[fileCount].Length;

во-вторых, на первой же итерации return прервет цикл и завершит метод, так что цикл безсмысленный получился smile 

Автор: DZeus 7.5.2008, 07:32
 smile 
да и фиг с ним, с циклом smile , это я просто не подумавши кусок кода вытащил из своего проекта, три раза по клавишам вдарил и решил что так должно работать, а если что разберётся... =)

Наперёд буду поосторожнее =)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)