Avatar billede Slettet bruger
09. juni 2011 - 20:37 Der er 10 kommentarer og
1 løsning

Kun kopiere hvis drevet er removable

Hej

Jeg er ved at lave et program der skal kopiere indholdet af nogle mapper over på roden af nogle specificerede drev, men hvordan kan jeg få programmet til kun at kopiere hvis drevet er en usb-nøgle.

Jeg har allerede et program, der kan kopiere som det skal, der skal bare lige den ekstra betingelse ind. Og jeg har prøvet en del, men jeg kan ikke få det til at virke som ønsket.
Avatar billede arne_v Ekspert
10. juni 2011 - 01:07 #1
Proev denne lille demo:

Imports System
Imports System.IO

Namespace E
    Public Class Program
        Public Shared Sub Main(args As String())
            For c As Integer = AscW("A") To AscW("F")
                Dim drive As String = ChrW(c) & ":"
                Dim di As New DriveInfo(drive)
                Console.WriteLine(drive & " - " & di.DriveType.ToString())
            Next
            Console.ReadKey()
        End Sub
    End Class
End Namespace
Avatar billede Slettet bruger
10. juni 2011 - 06:37 #2
Jeg er ikke så erfaren i vb endnu - men:
Jeg kan ikke se at det skulle udvælg usb-nøgler, hvilket argument gør det.
Og hvad er det Namespace for noget, det får da mit program/vb til at gå i fejl...
Her er en stump kode hvor jeg skal have betingelsen ind:           
If drvValue.IsReady("E:\") Then
  If GetDriveType("E:\") = "DRIVE_REMOVABLE" Then
                      My.Computer.FileSystem.CopyDirectory(Application.StartupPath + "\Type\Type1\", "E:\", True)
End If
End If
Hvor det med fed er et eksempel på hvad jeg har prøvet, men som ikke virkede.
Avatar billede arne_v Ekspert
10. juni 2011 - 15:19 #3
Koden udskriver DriveType for A: til F: og det er et standalone program.
Avatar billede arne_v Ekspert
10. juni 2011 - 15:19 #4
(New DriveInfo("E:")).DriveType.ToString()
Avatar billede Slettet bruger
11. juni 2011 - 11:21 #5
Det ser mere ud som det jeg skal bruge, men hvordan får jeg det ind som betingelse. Jeg har prøvet:
If (New DriveInfo("E:")).DriveType = DriveType.Removable.
Men det får programmet til både at kopiere til fixed og removable.
Avatar billede arne_v Ekspert
11. juni 2011 - 16:11 #6
Er det E: som du kopierer til?
Avatar billede Slettet bruger
11. juni 2011 - 21:42 #7
Ja, i dette tilfælde er det. Jeg har pt 5 (E, F, G, I og J) drev jeg vil skrive til, hvor alle 5 har ens kode (copy-paste). Udelukkende fordi det var hvad jeg kunne overskue og få til at virke.
Avatar billede arne_v Ekspert
12. juni 2011 - 05:03 #8
If (New DriveInfo(targetdev)).DriveType = DriveType.Removable Then
  ' kopier
End If

boer virke.

Hvordan faar du E: til at vaere fixed?
Avatar billede Slettet bruger
12. juni 2011 - 08:21 #9
E: er ikke fixed, det er en af de andre drev jeg skriver til. Under test har jeg også c som target, derfor kan jeg se at programmet både skriver til c (fixed) og f (removable) - hvilket gør at jeg kan regne ud at
"If (New DriveInfo(targetdev)).DriveType = DriveType.Removable" Then ikke virker helt efter hensigten...
Men hvis du mener det bør virke, så må jeg lige få lavet et test-program kun med den betingelse for at der kopieres.
Avatar billede Slettet bruger
12. juni 2011 - 14:25 #10
JAAAAAAA! Det var en fejl 40, jeg havde glemt at omdøbe en mappe... Så dumt!
Tusind tak for hjælpen!!
Smid et svar for point:-)
Avatar billede arne_v Ekspert
12. juni 2011 - 16:01 #11
svar
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