Avatar billede deamill Nybegynder
07. september 2011 - 20:39 Der er 11 kommentarer og
1 løsning

Ligge filen lokalt eller på et netshare?

Hej,

Kan man på en eller anden måde detecte om den fil man arbejder med ligger på et netværks share?

Jeg henter f.eks. fil info sådan her:

Dim FileInfo As System.IO.FileInfo
FileInfo = My.Computer.FileSystem.GetFileInfo(myFile)
fileFullName = FileInfo.FullName

På forhånd tak.

Mvh.
Kenneth
Avatar billede arne_v Ekspert
08. september 2011 - 03:18 #1
Forslag:

        Public Shared Function DevTyp(fnm As String) As DriveType
            If fnm.StartsWith("\\") Then
                Return DriveType.Network
            ElseIf fnm(1) = ":"C Then
                Return (New DriveInfo(fnm)).DriveType
            Else
                Return DriveType.Unknown
            End If
        End Function
Avatar billede deamill Nybegynder
08. september 2011 - 06:56 #2
Hej, nu var jeg måske ikke præcis nok, men det er et mapped netværksdrev.

/Kenneth
Avatar billede Mads Larsen Nybegynder
08. september 2011 - 08:48 #3
Function CheckType(Byval Sti as String)
        Dim NumData As Integer = 0
        Dim Drive As System.IO.DriveInfo = My.Computer.FileSystem.GetDriveInfo(Sti)
        NumData = Drive.DriveType

        Select Case NumData
            Case 2
                CheckType = "Removable"
            Case 3
                CheckType = "Fixed"
            Case 4
                CheckType = "Network"
            Case 5
                CheckType = "CD-ROM"
            Case 6
                CheckType = "RAM Disk"
            Case Else
                CheckType = "Unknown"
        End Select
    End Function

Mener den siger drevet er fixed, hvis det er lokalt drev. Og hvis det er netværks drev, så siger den network.
Avatar billede arne_v Ekspert
08. september 2011 - 14:55 #4
Et mapped netvaerksdrev burde haandteres fint af:

ElseIf fnm(1) = ":"C Then
                Return (New DriveInfo(fnm)).DriveType
Avatar billede Mads Larsen Nybegynder
08. september 2011 - 15:06 #5
Hvad gør C'et i

ElseIf fnm(1) = ":"C Then

Hvis man nu også lige skulle lære noget nyt :-)
Avatar billede arne_v Ekspert
08. september 2011 - 15:28 #6
Tester om det andet tegn er et kolon, saaledes at den fanger C:, D: etc..
Avatar billede deamill Nybegynder
08. september 2011 - 18:56 #7
Hej,

Takker :-)

Fik begge jeres forslag til at virke :-) Så kan i begge svare?

Tillægs spørgsmål, hvis det lige er til at svare på. Kan man, hvis det er et netværksdrev, så udlede hostnavnet eller ipadressen på der hvor drevet er lokaliseret?

/Kenneth
Avatar billede arne_v Ekspert
08. september 2011 - 19:18 #8
proev det her lille program:

Imports System
Imports System.Management

Namespace E
    Public Class Program
        Public Shared Sub Main(args As String())
            Dim wmi As ObjectQuery = New WqlObjectQuery("SELECT * FROM Win32_MappedLogicalDisk")
            Dim mlds As New ManagementObjectSearcher(wmi)
            For Each mld As ManagementObject In mlds.[Get]()
                Console.WriteLine(Convert.ToString(mld("Name")) & " = " & mld("ProviderName"))
            Next
            Console.ReadKey()
        End Sub
    End Class
End Namespace
Avatar billede arne_v Ekspert
08. september 2011 - 19:23 #9
og et svar fra mig
Avatar billede deamill Nybegynder
09. september 2011 - 07:42 #10
Hmm, den siger at disse er unknown/undefined:
ObjectQuery
ManagementObjectSearcher
ManagementObject

/Kenneth
Avatar billede Mads Larsen Nybegynder
09. september 2011 - 08:09 #11
Giv du dem bare til Arne, så han snart kan få de magiske 1. mil :)
Avatar billede arne_v Ekspert
09. september 2011 - 15:00 #12
Tilfoej en ref til System.Management.dll
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester