Solved

Click-Once deployment and System.Io.File.Exists Fails after install

Posted on 2012-04-04
8
519 Views
Last Modified: 2012-05-31
Hi!

could somebody tell me why this works fine when debugging but fails after i install the Click-once application. i don't get any error messages and the application keeps
running but all file.exists calls just doesn't work. Trust issue ? (visual studio 2008)

if File.Exists("C:\Documents and Settings\All Users\Documents\images\testimage.jpg") Then
......
0
Comment
Question by:jamppi
  • 4
  • 3
8 Comments
 
LVL 17

Expert Comment

by:nepaluz
ID: 37809948
what error do you get?
0
 

Author Comment

by:jamppi
ID: 37810235
I dont get any errors,  the code is not executed. but other parts of the solution runs fine.
0
 
LVL 17

Expert Comment

by:nepaluz
ID: 37810284
Try using the standard folder path for MyDocumets e.g
Dim ThePath = Path.Combine(My.Computer.FileSystem.SpecialDirectories.MyDocuments, "images\testimage.jpg")
If File.Exists(ThePath) Then
    'do yo thang!
End If

Open in new window

0
3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

 
LVL 40
ID: 37814409
nepaluz gave what could be the right solution, but did not say why you should use that technique.

Many standard directories are not so standard. They change name between operating systems and/or operating system languages. Documents and Settings has been replaced by Users in Windows Vista. It is called Utilisateurs on a French installation of Windows.

The technique given by nepaluz simply retrieve the name of the directory as it exists on the computer on which the code is running. You should always use that technique when you reference one of the standard directories, such as My Documents, My Music, Windows, System, etc.
0
 

Author Comment

by:jamppi
ID: 37817345
Hi!

I will test that!
But it doesn't answer why it works when i debug but not when i deploy it!
0
 
LVL 17

Expert Comment

by:nepaluz
ID: 37817393
File.Exists() returns a Boolean (True or False), so the patently obvious reason is that it has returned a False (and that the file does not exist!).
However, since it does return a true while in debug mode suggests that the file actually exists, and you are right to assume it should return a true after compilation.
I suggested you use the standard naming used by the framework to help narrow down the cause of this anomally. What is clear is that at runtime outside the debuger it returns a false, so it is over to you!
0
 

Author Comment

by:jamppi
ID: 37861535
Hi!


I'm still having the same issue.

Btw.  My.Computer.FileSystem.SpecialDirectories.MyDocuments  gives the path to \userxxxxx\Mydocuments.

i need to get to 'All Users\Documents'    (XP)  or ' C:\Users\Public\Documents\'  (win7)
0
 
LVL 17

Accepted Solution

by:
nepaluz earned 500 total points
ID: 37861625
For all users' documents use
Dim ThePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonDocuments), "images\testimage.jpg")
If File.Exists(ThePath) Then
    'do yo thang!
End If

Open in new window

0

Featured Post

Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

Question has a verified solution.

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

Suggested Solutions

What my article will show is if you ever had to do processing to a listbox without being able to just select all the items in it. My software Visual Studio 2008 crystal report v11 My issue was I wanted to add crystal report to a form and show…
This document covers how to connect to SQL Server and browse its contents.  It is meant for those new to Visual Studio and/or working with Microsoft SQL Server.  It is not a guide to building SQL Server database connections in your code.  This is mo…
This Micro Tutorial demonstrates using Microsoft Excel pivot tables, how to reverse engineer competitors' marketing strategies through backlinks.
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…

770 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