Visualbasic controleer datum file

Status
Niet open voor verdere reacties.

lccookie1992

Gebruiker
Lid geworden
7 feb 2010
Berichten
790
Hallo allemaal,

Hoe zorg ik dat Visualbasic controleerd of een file nieuwer is als een andere file en indien de file nieuwer is dat hij deze download en opend

oftewel hoe doe ik dit
if file d:\test.txt is nieuwer then c:\test.txt download file en vervang file
Groeten,
 
Laatst bewerkt:
Downloaded en lokaal is vaak een andere aanpak. Hangt ook een beetje af hoe je "nieuwer" definieert.

C en D klinkt als een lokale vergelijking. "downloaden" klinkt als een actie op een andere machine. Wat is het? wat is nieuwe? latere aanmaak datum?
 
Laat me een poging doen om te verhelderen

De exe waar het om gaat staat (voor het gemak) c:\temp\check.exe

de file staat in c:\temp\test.txt

de andere file staat op IP \\5.55.555.555 \update\test.txt

er moet gecontroleerd worden of test.txt op c: van dezelfde datum is als van de test op het ip adress

indien de versie op het ip adress nieuwer is moet er een MsgBox komen met de optie nieuwe versie downloaden JA / Nee
 
Laatst bewerkt:
Ok in principe kan dat, hoewel ik in het verleden toch een paar keer heb meegemaakt dat als de server unix draait, windows de datum niet altijd goed interpreteert
Code:
Dim fso As Object
Dim f As Object
fso = CreateObject("Scripting.FileSystemObject")
f = fso.getfile("c:\shared.log")
MsgBox(f.datecreated)
 
dit komt me bekend voor is dit niet vbs ? ik zoek dit in vb
 
Laatst bewerkt door een moderator:
Dat is VB code, zojuist getest in VBE-2010. Je kunt ook de collection toevoegen waar deze commando's in zitten, maar ik gebruik liever createobject omdat dat makkelijker port naar verschillende computers.
 
Hoe zou ik die code het beste kunnen verwerken in deze code ?

Code:
Public Class Form1

    Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click

    End Sub

    Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If My.Computer.FileSystem.FileExists("\\1.11.111.111\Update\test.txt") Then

            MsgBox("File found.")
        Else
            MsgBox("File not found.")
        End If

    End Sub
End Class
 
Code:
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim fso As Object
        Dim f As Object
        Dim datum As Date
        fso = CreateObject("Scripting.FileSystemObject")
        Try
            f = fso.getfile("\\server\dir\test.txt")
            datum = Convert.ToDateTime(f.datecreated)
            MsgBox(datum.Year)
        Catch
            MsgBox("file not found")
        End Try

    End Sub

eventueel herhalen voor de tweede file, de data kun je vervolgens vergelijken
 
Bedankt wampier na wat aanpassingen heb ik het bijna zoals ik het venster wil hebben
Is er ook een mogelijkheid dat de msgbox 2 buttons krijgt ? of moet ik hiervoor een nieuwe box maken en is het ook mogelijk om voor de datum tekst neer te zetten ?
 
???????

Nu snap ik er helemaal niets meer van ik heb alles van Form2 en Check verwijderd en alsnog word de datum weer gegeven.....


Nvm opgelost
 
Laatst bewerkt:
Dat is afhankelijk wat je op de button wil hebben. Kun je nog even aangeven waar je hulp voor wil hebben? Ik zie namelijk je scherm niet dus: "kan het er zo uitzien" is een beetje cryptisch :P
 
dit heb ik nu
checkk.jpg

dit zou ik willen
checkv2.jpg

wat er moet gebeuren

Ik wil de naam Check graag wijzigen dit is namelijk de bestandsnaam van het project maar ik weet niet waar gezien het een msgbox is
Ook de OK knop zou ik graag zien als Download maar ook hier weet ik niet hoe dat moet omdat het een msgbox is
En als laatste zoals je kan zien tekst voor\boven de datum die in de msbox staat

Dit zou ik graag ook nog terug willen zien als het zou kunnen
als je op Download klikt moet een venster komen zodat je kan kiezen waar je de nieuwe versie wil opslaan

met eventueel een msgbox update successful

Ik denk dat dit het makelijkste is om geen msgbox te gebruiken maar een nieuw scherm Form2
 
Laatst bewerkt:
Msgbox kan best veel. Het kan alles wat je vraagt behalve de downloadknop:

msgbox ("de nieuwste:" & chr(13) & datum, "update check")

De knop is alleen wijzigbaar naar een aantal standaard items: Yes/no, OK, OK/cancel, etc.
 
als ik msgbox ("de nieuwste:" & chr(13) & datum, "update check") gebruik ipv MsgBox(datum.date) dan kan hij de file niet vinden :S

Ik zal eens wat dingen toevoegen en weg laten kijken wat werkt en wat niet
 
Laatst bewerkt:
Een updater dus.

Je kunt de mijne gebruiken: http://www.helpmij.nl/forum/showthread.php/633403-UpdateLib-Een-updater-voor-je-applicaties

Het voordeel dat je krijgt als je mijn updater gebruikt is dat je maar een paar regeltjes code (waarde toekennen aan een paar properties en een method aanroepen) hoeft op te geven.
Ik weet dat je als hobbyprogrammeur graag zelf je dingen maakt, maar mijn updater is juist bedoeld om anderen werk te besparen, en je kunt je daarna concentreren op het hoofddoel van je programma.

Er is ook een handleiding beschikbaar, gemaakt door JoZ: http://www.helpmij.nl/forum/showthread.php/627703-Updates-voor-je-programma-in-VB.NET-en-C

Hopelijk vind je mijn updater handig en zal je het ook voor je toekomstige projecten gebruiken. :)
 
TheMightyAtom.UpdateLib.dll zal vast werken maar ik ben nog maar een amateur wat betreft programeren heb dus geen idee hoe ik iets met het dll bestand zou moeten/kunnen/gebruiken

mocht het verduidelijkend zijn hier is de aangepaste versie van de source code

Code:
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Form1
    Inherits System.Windows.Forms.Form

    'Form overrides dispose to clean up the component list.
    <System.Diagnostics.DebuggerNonUserCode()> _
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
        Try
            If disposing AndAlso components IsNot Nothing Then
                components.Dispose()
            End If
        Finally
            MyBase.Dispose(disposing)
        End Try
    End Sub

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.  
    'Do not modify it using the code editor.
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        Me.Button1 = New System.Windows.Forms.Button()
        Me.Button2 = New System.Windows.Forms.Button()
        Me.Label1 = New System.Windows.Forms.Label()
        Me.PictureBox1 = New System.Windows.Forms.PictureBox()
        CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
        Me.SuspendLayout()
        '
        'Button1
        '
        Me.Button1.Location = New System.Drawing.Point(12, 149)
        Me.Button1.Name = "Button1"
        Me.Button1.Size = New System.Drawing.Size(110, 40)
        Me.Button1.TabIndex = 0
        Me.Button1.Text = "Software"
        Me.Button1.UseVisualStyleBackColor = True
        '
        'Button2
        '
        Me.Button2.Location = New System.Drawing.Point(347, 149)
        Me.Button2.Name = "Button2"
        Me.Button2.Size = New System.Drawing.Size(110, 40)
        Me.Button2.TabIndex = 1
        Me.Button2.Text = "Update"
        Me.Button2.UseVisualStyleBackColor = True
        '
        'Label1
        '
        Me.Label1.AutoSize = True
        Me.Label1.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!)
        Me.Label1.Location = New System.Drawing.Point(128, 169)
        Me.Label1.Name = "Label1"
        Me.Label1.Size = New System.Drawing.Size(213, 20)
        Me.Label1.TabIndex = 2
        Me.Label1.Text = "Gemaakt door Douwe Visser"
        '
        'PictureBox1
        '
        Me.PictureBox1.ImageLocation = "\\1.11.111.111\Update\logo.gif"
        Me.PictureBox1.Location = New System.Drawing.Point(110, 38)
        Me.PictureBox1.Name = "PictureBox1"
        Me.PictureBox1.Size = New System.Drawing.Size(281, 105)
        Me.PictureBox1.TabIndex = 3
        Me.PictureBox1.TabStop = False
        '
        'Form1
        '
        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
        Me.ClientSize = New System.Drawing.Size(469, 212)
        Me.Controls.Add(Me.PictureBox1)
        Me.Controls.Add(Me.Label1)
        Me.Controls.Add(Me.Button2)
        Me.Controls.Add(Me.Button1)
        Me.Name = "Form1"
        Me.Text = "Software Wizzkidcomputers"
        CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit()
        Me.ResumeLayout(False)
        Me.PerformLayout()

    End Sub
    Friend WithEvents Button1 As System.Windows.Forms.Button
    Friend WithEvents Button2 As System.Windows.Forms.Button
    Friend WithEvents Label1 As System.Windows.Forms.Label
    Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox

    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        Dim fso As Object
        Dim f As Object
        Dim datum As Date
        fso = CreateObject("Scripting.FileSystemObject")
        Try
            f = fso.getfile("\\1.11.111.111\Update\logo.gif")
            datum = Convert.ToDateTime(f.datecreated)
            MsgBox(datum.Date)
        Catch
            MsgBox("file not found")
        End Try

    End Sub

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

    End Sub

    Private Sub PictureBox1_Click(sender As System.Object, e As System.EventArgs) Handles PictureBox1.Click

    End Sub
End Class
 
Laatst bewerkt:
Ik zei toch al dat je maar een paar regeltje code hoeft op te geven? Dat plus de handleiding moet toch voldoende zijn om het in te bouwen in je programma?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan