Solved

How do I look for a file with no extension and delete it.  VB.net 2005

Posted on 2011-02-16
18
618 Views
Last Modified: 2013-11-05
I want to do house keeping on a folder via my VB App.  I have Alpha Numeric files with no extension that is being copied everytime an excel file is created.  They are always 8 characters in length.  I want to look in the folder and if those files are present delete them.  This what I've tried, but it doesn't work.


Dim file5 As String = "N:\Archive\*.*"
            If System.IO.File.Exists(file5).Length = 8 Then
                System.IO.File.Delete(file5)
            End If
0
Comment
Question by:TEStack
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 11
  • 6
18 Comments
 
LVL 11

Expert Comment

by:jasonduan
ID: 34906850
DirectoryInfo info = new DirectoryInfo( @"N:\Archive" );
foreach( FileInfo finfo in info.GetFiles( "*.*" ) )
{
    if( finfo.Name.Length==8 && !finfo.Contains(".") )
       finfo.Delete();
}


This is C#, you should be able to easily convert it to VB.net
0
 

Author Comment

by:TEStack
ID: 34906870
I'm afraid it's not easy for me.  I'm pretty much a rookie and don't know any C#.
0
 
LVL 52

Expert Comment

by:Carl Tawn
ID: 34907039
If you are using .Net 3.5 or above you can do it with Linq. Sample follows:
Imports System.Linq
Imports System.IO

Module Module1

    Sub Main()

        Dim files = From file In (New DirectoryInfo("N:\Archive\").GetFiles()) _
                                  Where file.Name.Length = 8 And String.IsNullOrEmpty(file.Extension) _
                                  Select file

        For Each f In files
            '// Do something with each file
        Next

    End Sub

End Module

Open in new window

0
The Orion Papers

Are you interested in becoming an AWS Certified Solutions Architect?

Discover a new interactive way of training for the exam.

 

Author Comment

by:TEStack
ID: 34907933
Does anyone else know how this might be done in vb.net?
0
 

Author Comment

by:TEStack
ID: 34907946
Disregard last post I hadn't updated my screen.
0
 

Author Comment

by:TEStack
ID: 34908426
I get this error
namespace or type specified in the Imports "system.Linq' doesn't contain any public member or cannot be found.  Make sure the namespace or the type is defined and contains at least one public member.  Make sure the  imported element name doesn't use any aliases.
0
 
LVL 52

Expert Comment

by:Carl Tawn
ID: 34908455
Can you post your code precisely as you have it? Including the "Imports" line.
0
 

Author Comment

by:TEStack
ID: 34908483
Imports System.Linq
Imports System.IO

Module Module1
   
    Sub Main()

        Dim files = From file In (New DirectoryInfo("N:\Archive\").GetFiles()) _
                                  Where file.Name.Length = 8 And String.IsNullOrEmpty(file.Extension) _
                                  Select file

        For Each f In files
            '// Do something with each file
        Next

    End Sub





End Module
0
 
LVL 52

Expert Comment

by:Carl Tawn
ID: 34908515
What version of the .net framework are you using? Linq is only available with 3.0 onwards.
0
 

Author Comment

by:TEStack
ID: 34908546
I'm running VB.net 2005.  Under add and remove softeware I see .net 3.5.  If I look at my references in my program they refer to 2.0.
0
 
LVL 52

Expert Comment

by:Carl Tawn
ID: 34908643
Ah, in that case you're stuck with 2.0. Try this version instead:
Imports System.Linq
Imports System.IO

Module Module1

    Sub Main()

        Dim files As FileInfo() = (New DirectoryInfo("N:\Archive").GetFiles())

        For Each f In files
                If f.Name.Length = 8 And String.IsNullOrEmpty(f.Extension) Then
                     '// Do something with the file
                End If
        Next

    End Sub

End Module

Open in new window

0
 

Author Comment

by:TEStack
ID: 34908731
Do I leave Imports System.Linq out?  How should f be declared?
0
 
LVL 52

Expert Comment

by:Carl Tawn
ID: 34908741
You leave it out. System.Linq isn't available in VS2005.
0
 

Author Comment

by:TEStack
ID: 34908759
You left it in your example above.  How should F be declared?
0
 
LVL 52

Assisted Solution

by:Carl Tawn
Carl Tawn earned 500 total points
ID: 34908783
Ah, so I did :)

Updated version:
Imports System.IO

Module Module1

    Sub Main()

        Dim files As FileInfo() = (New DirectoryInfo("N:\Archive").GetFiles())

        For Each f as FileInfo In files
                If f.Name.Length = 8 And String.IsNullOrEmpty(f.Extension) Then
                     '// Do something with the file
                End If
        Next

    End Sub

End Module

Open in new window

0
 

Author Comment

by:TEStack
ID: 34908870
How do I actually get it to delete the files?
0
 

Accepted Solution

by:
TEStack earned 0 total points
ID: 34909864
Imports System.IO

Module Module1
    Public Sub Main()

        Dim files As FileInfo() = (New DirectoryInfo("N:\usmPTP\PlatPar\3050Archive").GetFiles())

        For Each f As FileInfo In files
            If f.Name.Length = 8 And String.IsNullOrEmpty(f.Extension) Then
                f.Delete()

            End If
        Next

    End Sub


End Module
0
 

Author Closing Comment

by:TEStack
ID: 34941359
Thanks for the help.  I needed a little more detail.
0

Featured Post

Monthly Recap

May was a big month for new releases from Linux Academy! Take a look at what our team built recently in our blog. You can access the newest releases from our blog.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Summary Displaying images in RichTextBox is a common requirement with limited solutions available. Pasting through clipboard or embedding into RTF content only support static images.  This article describes how to insert Windows control objects int…
A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…
If you're a developer or IT admin, you’re probably tasked with managing multiple websites, servers, applications, and levels of security on a daily basis. While this can be extremely time consuming, it can also be frustrating when systems aren't wor…
NetCrunch network monitor is a highly extensive platform for network monitoring and alert generation. In this video you'll see a live demo of NetCrunch with most notable features explained in a walk-through manner. You'll also get to know the philos…

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question