?
Solved

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

Posted on 2012-04-04
8
Medium Priority
?
529 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
What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

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

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Whether you've completed a degree in computer sciences or you're a self-taught programmer, writing your first lines of code in the real world is always a challenge. Here are some of the most common pitfalls for new programmers.
This article shows how to deploy dynamic backgrounds to computers depending on the aspect ratio of display
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…
With just a little bit of  SQL and VBA, many doors open to cool things like synchronize a list box to display data relevant to other information on a form.  If you have never written code or looked at an SQL statement before, no problem! ...  give i…

850 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