Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

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

Posted on 2011-02-16
18
Medium Priority
?
620 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
Veeam Disaster Recovery in Microsoft Azure

Veeam PN for Microsoft Azure is a FREE solution designed to simplify and automate the setup of a DR site in Microsoft Azure using lightweight software-defined networking. It reduces the complexity of VPN deployments and is designed for businesses of ALL sizes.

 

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 2000 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

Tech or Treat! - Giveaway

Submit an article about your scariest tech experience—and the solution—and you’ll be automatically entered to win one of 4 fantastic tech gadgets.

Question has a verified solution.

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

Recently while returning home from work my wife (another .NET developer) was murmuring something. On further poking she said that she has been assigned a task where she has to serialize and deserialize objects and she is afraid of serialization. Wha…
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
This course is ideal for IT System Administrators working with VMware vSphere and its associated products in their company infrastructure. This course teaches you how to install and maintain this virtualization technology to store data, prevent vuln…
This tutorial will teach you the special effect of super speed similar to the fictional character Wally West aka "The Flash" After Shake : http://www.videocopilot.net/presets/after_shake/ All lightning effects with instructions : http://www.mediaf…

636 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