Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 |

 

  Вопрос: Узнать размер файла и папки Добавлено: 28.04.07 10:28  

Автор вопроса:  ZXC
Собственно вот сам вопрос, как можно узнать размер файла и папки?

Ответить

  Ответы Всего ответов: 18  

Номер ответа: 1
Автор ответа:
 avdey



ICQ: 219571279 

Вопросов: 34
Ответов: 486
 Профиль | | #1 Добавлено: 28.04.07 11:33
Юзай System.IO, там все что нужно.

Ответить

Номер ответа: 2
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #2 Добавлено: 28.04.07 12:17
размер файла — LOF, FileLen
Размер папки — не помню точно.. ладно, юзай System.IO

Ответить

Номер ответа: 3
Автор ответа:
 ZXC



Вопросов: 30
Ответов: 106
 Профиль | | #3 Добавлено: 28.04.07 12:59
Хм размер файла узнал

System.IO.FileInfo

параметр Length, а вот с дерикторией не получается, в DirectoryInfo нет про размер не слова, щас пороюсь ещё, мож что найду, а пока мож кто знает скажите :-)

Ответить

Номер ответа: 4
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #4 Добавлено: 28.04.07 13:08
Только перебирать и суммировать размеры файлов, находящихся в необходимой директории.

Ответить

Номер ответа: 5
Автор ответа:
 Алексей



black  admin

ICQ: 261779681 

Вопросов: 87
Ответов: 633
 Web-сайт: aleksey.nemiro.ru
 Профиль | | #5
Добавлено: 28.04.07 13:11
циклом ;)

Ответить

Номер ответа: 6
Автор ответа:
 ZXC



Вопросов: 30
Ответов: 106
 Профиль | | #6 Добавлено: 28.04.07 13:13
Неужели в .NET нету простого решения? только циклом? :-(

Ответить

Номер ответа: 7
Автор ответа:
 ZXC



Вопросов: 30
Ответов: 106
 Профиль | | #7 Добавлено: 28.04.07 13:24
Ладно :-) учитывая мой предыдущий пост, там был ответ Brand'а вот готове решение как получиться размер директории + поддиректории

Dim sizefiles As Long
    Dim DI As New DirectoryInfo(directoryName)

        For Each FI As FileInfo In DI.GetFiles()
            sizefiles = sizefiles + FI.Length
        Next

        For Each SubDI As DirectoryInfo In DI.GetDirectories
            size(SubDI.FullName)
        Next
       

Ответить

Номер ответа: 8
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #8
Добавлено: 28.04.07 14:10
Цикл - это простое решение. Куда уж проще?

Ответить

Номер ответа: 9
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #9 Добавлено: 28.04.07 16:51
2 ZXC - приведи больше кода, судя по всему у тебя он будет работать неверно.

Ответить

Номер ответа: 10
Автор ответа:
 Сашок



ICQ: 387093431 

Вопросов: 1
Ответов: 70
 Профиль | | #10 Добавлено: 28.04.07 19:18
Не парь мозги - лучше всего используй старый FSO

Ответить

Номер ответа: 11
Автор ответа:
 Сашок



ICQ: 387093431 

Вопросов: 1
Ответов: 70
 Профиль | | #11 Добавлено: 28.04.07 19:29
Если захочешь все-таки юзать FSO делай так:
через Project->Add Reference (вкладка COM) выбирай Microsoft Scripting Runtime.
Далее дописуй Imports Scripting.
Dim FSO As New FileSystemObjectClass()
FSO.GetFolder("C:\Windows";).Size
Конечно это не .NET код, но все-же кое-кому кое-когда это здорово помогает ;-)

Ответить

Номер ответа: 12
Автор ответа:
 D o c a l



ICQ: 408802757 

Вопросов: 76
Ответов: 985
 Web-сайт: www.doc-source.pp.net.ua/
 Профиль | | #12
Добавлено: 28.04.07 22:46
Private Sub Command1_Click()
On Error Resume Next
If filepath = "" Then
MsgBox "Ви повині виділити,для початку,файл", vbCritical
Else
a = filepath
MsgBox DirUsedBytes(a)
File1.Refresh
filepath = ""
End If
End Sub

Function DirUsedBytes(ByVal dirName As String) As Long
Dim FileName As String
Dim FileSize As Currency
FileSize = 0
FileName = filepath

FileSize = FileSize + FileLen(FileName)
DirUsedBytes = FileSize
End Function

Ето для файла
Function DirUsedByteson(ByVal dirName As String) As Long
Dim FileName As String
Dim FileSize As Currency
If Right$(dirName, 1) <> "\" Then
        dirName = dirName & "\"
End If
FileSize = 0
FileName = Dir$(dirName & "*.*";)
Do While FileName <> ""
        FileSize = FileSize + FileLen(dirName & FileName)
        FileName = Dir$
Loop
DirUsedByteson = FileSize

End Function
Private Sub Command2_Click()
MsgBox DirUsedByteson(Dir1.Path)
End Sub
Ето для папки

Ответить

Номер ответа: 13
Автор ответа:
 BUMM ®



Вопросов: 8
Ответов: 482
 Профиль | | #13 Добавлено: 28.04.07 23:19
Если захочешь все-таки юзать FSO делай так:
через Project->Add Reference (вкладка COM) выбирай Microsoft Scripting Runtime.
Далее дописуй Imports Scripting.
Dim FSO As New FileSystemObjectClass()
FSO.GetFolder("C:\Windows";).Size
Конечно это не .NET код, но все-же кое-кому кое-когда это здорово помогает ;-)


Если болит голова.... гильотина - это конечно не аспирин, но все-же кое-кому кое-когда это здорово помогает ;-)

Ответить

Номер ответа: 14
Автор ответа:
 BUMM ®



Вопросов: 8
Ответов: 482
 Профиль | | #14 Добавлено: 28.04.07 23:24
Юзай System.IO.FileInfo.

Для папок - суммируй размер всех файлов

Для перехода по дочерним папкам используй рекурсию

Ответить

Номер ответа: 15
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #15 Добавлено: 28.04.07 23:59
тихо ребята, тут особо тяжелый случай. Вот смотрите:

2 Docal, знаешь ли ты, чем отличается VB.NET и VB6? Хотябы примерно, хотябы теоретически... Я уже не раз замечал подобное за тобой...

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам