Solved

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

Posted on 2012-04-04
8
521 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
[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
  • 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
Salesforce Has Never Been Easier

Improve and reinforce salesforce training & adoption using WalkMe's digital adoption platform. Start saving on costly employee training by creating fast intuitive Walk-Thrus for Salesforce. Claim your Free Account Now

 
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

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

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

Suggested Solutions

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…
For most people, the WrapPanel seems like a magic when they switch from WinForms to WPF. Most of us will think that the code that is used to write a control like that would be difficult. However, most of the work is done by the WPF engine, and the W…
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…
Are you ready to implement Active Directory best practices without reading 300+ pages? You're in luck. In this webinar hosted by Skyport Systems, you gain insight into Microsoft's latest comprehensive guide, with tips on the best and easiest way…

733 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