Results 1 to 6 of 6

Thread: not transferring the file

  1. #1
    joemack95 is offline VB.NET Forum Newbie
    .NET Framework
    .NET 4.5
    Join Date
    Nov 2016
    Posts
    5
    Reputation
    0

    not transferring the file

    Basically i'm trying to get my program to copy a file from a location and send it over a series of ip addresses, i've commented each individual bit, but in short it just doesn't copy the file even tho it exists in the location


    Public Class CopyPastFile


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

    'this is only here so if you try to execute the copy command without a file selected it will alert you

    If Textbox1.Text = "" Then
    MsgBox("No file has been selected!")
    Exit Sub
    Else
    End If


    'this is creating the error log which will display wether the file was successfully copied to the machine or not
    Dim path As String = "\\192.168.0.1\software\VB\errorlog.txt"
    Dim fs As FileStream = File.Create(path)
    Dim info As Byte() = New UTF8Encoding(True).GetBytes(urnstr & " " & ipstr)
    fs.Write(info, 0, info.Length)
    fs.Close()



    ' this goes through my database and selects each cell in a row and stores it tot he variable, which I then refer to
    For rowIndex = 0 To DataGridView1.RowCount - 2
    ipstr = DataGridView1.Rows(rowIndex).Cells(1).Value.ToStri ng
    urnstr = DataGridView1.Rows(rowIndex).Cells(0).Value.ToStri ng
    'MsgBox(urnstr & ipstr)


    Try

    'I think this is what is causing my error as I use a shell(xstr) command and it gives me a msgbox saying it was all good and my error log says successful but the file isn't transferred

    with process.start it does the opposite and just says it cant find the file and the error log fails everything

    xstr = ("xcopy " & fnstr & " " & ipstr & "\web /y")
    Process.Start(xstr)

    this writes all ip address as successful in the error log but only if the file is copied

    My.Computer.FileSystem.WriteAllText("\\192.168.0.1 \software\VB\errorlog.txt",
    vbCrLf + urnstr & " " & ipstr & " " & " " & "Success", True)


    Catch ex As Exception
    MessageBox.Show("error ..." & ex.Message, "error")


    'this does the opposite of the success and if it fails it lists it as a failure
    My.Computer.FileSystem.WriteAllText("\\192.168.0.1 \software\VB\errorlog.txt",
    vbCrLf + urnstr & " " & ipstr & " " & " " & "Failed", True)



    'this tells me if I am at the end of my datagrid view to cancel the loop
    End Try
    If rowIndex = DataGridView1.RowCount - 2 Then
    Exit For
    End If


    Next
    MessageBox.Show("Transfer Complete")


    End Sub

  2. #2
    JuggaloBrotha's Avatar
    JuggaloBrotha is offline VB.NET Forum Moderator
    .NET Framework
    .NET 4.0
    Join Date
    Jun 2004
    Location
    Lansing, MI; USA
    Posts
    4,464
    Reputation
    1015
    Quote Originally Posted by joemack95 View Post
    Basically i'm trying to get my program to copy a file from a location and send it over a series of ip addresses, i've commented each individual bit, but in short it just doesn't copy the file even tho it exists in the location


    Public Class CopyPastFile


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

    'this is only here so if you try to execute the copy command without a file selected it will alert you

    If Textbox1.Text = "" Then
    MsgBox("No file has been selected!")
    Exit Sub
    Else
    End If


    'this is creating the error log which will display wether the file was successfully copied to the machine or not
    Dim path As String = "\\192.168.0.1\software\VB\errorlog.txt"
    Dim fs As FileStream = File.Create(path)
    Dim info As Byte() = New UTF8Encoding(True).GetBytes(urnstr & " " & ipstr)
    fs.Write(info, 0, info.Length)
    fs.Close()



    ' this goes through my database and selects each cell in a row and stores it tot he variable, which I then refer to
    For rowIndex = 0 To DataGridView1.RowCount - 2
    ipstr = DataGridView1.Rows(rowIndex).Cells(1).Value.ToStri ng
    urnstr = DataGridView1.Rows(rowIndex).Cells(0).Value.ToStri ng
    'MsgBox(urnstr & ipstr)


    Try

    'I think this is what is causing my error as I use a shell(xstr) command and it gives me a msgbox saying it was all good and my error log says successful but the file isn't transferred

    with process.start it does the opposite and just says it cant find the file and the error log fails everything

    xstr = ("xcopy " & fnstr & " " & ipstr & "\web /y")
    Process.Start(xstr)

    this writes all ip address as successful in the error log but only if the file is copied

    My.Computer.FileSystem.WriteAllText("\\192.168.0.1 \software\VB\errorlog.txt",
    vbCrLf + urnstr & " " & ipstr & " " & " " & "Success", True)


    Catch ex As Exception
    MessageBox.Show("error ..." & ex.Message, "error")


    'this does the opposite of the success and if it fails it lists it as a failure
    My.Computer.FileSystem.WriteAllText("\\192.168.0.1 \software\VB\errorlog.txt",
    vbCrLf + urnstr & " " & ipstr & " " & " " & "Failed", True)



    'this tells me if I am at the end of my datagrid view to cancel the loop
    End Try
    If rowIndex = DataGridView1.RowCount - 2 Then
    Exit For
    End If


    Next
    MessageBox.Show("Transfer Complete")


    End Sub
    Your post is really hard to read with all of this unformatted code, try wrapping your code in [xcode=vb.net]Your code here[/xcode] tags, but I think your biggest issue is simply copying a file, have you taken a look at the System.IO.File.Copy() method?
    Currently using: VS 2010 Ultimate on Win7 Ultimate x64.

  3. #3
    joemack95 is offline VB.NET Forum Newbie
    .NET Framework
    .NET 4.5
    Join Date
    Nov 2016
    Posts
    5
    Reputation
    0

    Imports Microsoft.VisualBasic.FileIO
    Imports System
    Imports System.IO
    Imports System.Text

    Public Class CopyPastFile

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    If Textbox1.Text = "" Then
    MsgBox("No file has been selected!")
    Exit Sub
    Else
    End If

    Dim path As String = "\\192.168.0.1\software\VB\errorlog.txt"
    Dim fs As FileStream = File.Create(path)
    Dim info As Byte() = New UTF8Encoding(True).GetBytes(urnstr & " " & ipstr)
    fs.Write(info, 0, info.Length)
    fs.Close()

    For rowIndex = 0 To DataGridView1.RowCount - 2
    ipstr = DataGridView1.Rows(rowIndex).Cells(1).Value.ToString
    urnstr = DataGridView1.Rows(rowIndex).Cells(0).Value.ToString
    'MsgBox(urnstr & ipstr)

    Try
    xstr = ("xcopy " & fnstr & " " & ipstr & "\web /y")
    Process.Start(xstr)
    My.Computer.FileSystem.WriteAllText("\\192.168.0.1\software\VB\errorlog.txt", vbCrLf + urnstr & " " & ipstr & " " & " " & "Success", True)
    Catch ex As Exception
    MessageBox.Show("error ..." & ex.Message, "error")
    My.Computer.FileSystem.WriteAllText("\\192.168.0.1\software\VB\errorlog.txt", vbCrLf + urnstr & " " & ipstr & " " & " " & "Failed", True)
    End Try
    If rowIndex = DataGridView1.RowCount - 2 Then
    Exit For
    End If
    Next
    MessageBox.Show("Transfer Complete")

    For rowIndex = 0 To DataGridView1.RowCount - 2
    If My.Computer.FileSystem.FileExists(ipstr) Then
    MsgBox("File found.")
    Exit Sub
    Else

    End If
    Next
    End Sub
    Last edited by JuggaloBrotha; 11-23-2016 at 12:17 PM. Reason: Added xcode tag

  4. #4
    joemack95 is offline VB.NET Forum Newbie
    .NET Framework
    .NET 4.5
    Join Date
    Nov 2016
    Posts
    5
    Reputation
    0
    not sure if that's easier without all my comments, and no I haent used that, I'm currently using the xcopy then executing it with process.start

  5. #5
    joemack95 is offline VB.NET Forum Newbie
    .NET Framework
    .NET 4.5
    Join Date
    Nov 2016
    Posts
    5
    Reputation
    0

    not transferring the file


    Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    'Basically i'm trying to get my program to copy a file from a location and send it over a series of ip addresses, i've commented each individual bit, but in short it just doesn't copy the file even tho it exists in the location

    Public Class CopyPastFile
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    'this is only here so if you try to execute the copy command without a file selected it will alert you

    If Textbox1.Text = "" Then
    MsgBox("No file has been selected!")
    Exit Sub
    Else
    End If

    'this is creating the error log which will display wether the file was successfully copied to the machine or not
    Dim path As String = "\\192.168.0.1\software\VB\errorlog.txt"
    Dim fs As FileStream = File.Create(path)
    Dim info As Byte() = New UTF8Encoding(True).GetBytes(urnstr & " " & ipstr)
    fs.Write(info, 0, info.Length)
    fs.Close()

    ' this goes through my database and selects each cell in a row and stores it tot he variable, which I then refer to
    For rowIndex = 0 To DataGridView1.RowCount - 2
    ipstr = DataGridView1.Rows(rowIndex).Cells(1).Value.ToStri ng
    urnstr = DataGridView1.Rows(rowIndex).Cells(0).Value.ToStri ng
    'MsgBox(urnstr & ipstr)

    Try
    'I think this is what is causing my error as I use a shell(xstr) command and it gives me a msgbox saying it was all good and my error log says successful but the file isn't transferred
    'With Process.Start it does the opposite And just says it cant find the file And the Error log fails everything

    xstr = ("xcopy " & fnstr & " " & ipstr & "\web /y")
    Process.Start(xstr)

    'this writes all ip address as successful in the error log but only if the file Is copied

    My.Computer.FileSystem.WriteAllText("\\192.168.0.1 \software\VB\errorlog.txt", vbCrLf + urnstr & " " & ipstr & " " & " " & "Success", True)

    Catch ex As Exception
    MessageBox.Show("error ..." & ex.Message, "error")

    'this does the opposite of the success and if it fails it lists it as a failure
    My.Computer.FileSystem.WriteAllText("\\192.168.0.1 \software\VB\errorlog.txt",
    vbCrLf + urnstr & " " & ipstr & " " & " " & "Failed", True)

    'this tells me if I am at the end of my datagrid view to cancel the loop
    End Try
    If rowIndex = DataGridView1.RowCount - 2 Then
    Exit For
    End If

    Next
    MessageBox.Show("Transfer Complete")

    End Sub
    End Sub
    End Class
    Last edited by JuggaloBrotha; 11-23-2016 at 12:17 PM. Reason: Added xcode tag

  6. #6
    JuggaloBrotha's Avatar
    JuggaloBrotha is offline VB.NET Forum Moderator
    .NET Framework
    .NET 4.0
    Join Date
    Jun 2004
    Location
    Lansing, MI; USA
    Posts
    4,464
    Reputation
    1015
    Honestly you have so much jumbled code that none of that will ever work for you, so how about a good example of what you're trying to do here:
    Option Explicit On
    Option Strict On
    Option Infer Off

    Imports System.IO

    Public Class Form1

    Private m_LogFilePath As String = "\\192.168.0.1\software\errorlog.txt"

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    'Check if file has been selected
    If TextBox1.Text.Trim().Length > 0I Then

    'Variables to hold the two file names
    Dim ipstr, urnstr As String

    'Loop the DataGrid to copy the files
    For rowIndex As Integer = 0 To DataGridView1.RowCount - 2

    'Get the two file paths info
    ipstr = DataGridView1.Rows(rowIndex).Cells(1I).Value.ToString()
    urnstr = DataGridView1.Rows(rowIndex).Cells(0I).Value.ToString()

    'Check if the source file exists
    If File.Exists(ipstr) Then
    Try
    'Copy the file
    File.Copy(ipstr, urnstr, True)

    'Log successful file copy
    WriteToLogFile(String.Format("{0} {1} Success", urnstr, ipstr))
    Catch ex As Exception
    'An error occured, log the info
    WriteToLogFile(String.Format("{0} {1} Failed: {2}", urnstr, ipstr, ex.Message))
    End Try
    End If
    Next rowIndex

    'Notify that the transfer completed
    MessageBox.Show("Transfer Complete", "Transfer Complete", MessageBoxButtons.OK, MessageBoxIcon.Information)
    Else
    'Notify that there wasn't a file selected
    MessageBox.Show("No file has been selected!", "No File Selected", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
    End If
    End Sub

    Private Sub WriteToLogFile(Message As String)
    'Dim the file writer
    Dim sw As StreamWriter = Nothing

    Try
    'Create the file writer using the log file path, this will APPEND text to the file
    sw = New StreamWriter(m_LogFilePath, True)

    'Write the data line
    sw.WriteLine(Message)
    Catch ex As Exception
    'There was an error writing to the log file
    MessageBox.Show(ex.ToString(), "Error writing to log file", MessageBoxButtons.OK, MessageBoxIcon.Error)
    Finally
    'Close & clean up the file writer
    If sw IsNot Nothing Then
    sw.Close()
    sw.Dispose()
    End If
    End Try
    End Sub

    End Class
    Currently using: VS 2010 Ultimate on Win7 Ultimate x64.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •