Suppose I have two files on my file system with the same name. One is
in a directory I do not have permission to:

 c:/does_not_have_permission/sqlMap.config

and the other one is in the root of my application:

 /sqlMap.config

The documentation for File.Exists says:

"
true if the caller has the required permissions and path contains the
name of an existing file; otherwise, false. This method also returns
false if path is null or a zero-length string. If the caller does not
have sufficient permissions to read the specified file, no exception is
thrown and the method returns false regardless of the existence of
path.  
"

If I called the method like this:

 GetConfigAsXmlDocument("c:/does_not_have_permission/sqlMap.config") 

File.Exists would return false and "/sqlMap.config" would be loaded.
That's not the file I wanted.

--- Gilles Bayon <[EMAIL PROTECTED]> wrote:
> I proposed
>  
> public static XmlDocument GetConfigAsXmlDocument(string path)
> {
> XmlDocument config = new XmlDocument(); 
> XmlTextReader reader = null; 
> 
> try 
> { 
> if (File.Exists(path))
> {
> reader = new XmlTextReader( path ); 
> }
> else
> {
> reader = new XmlTextReader(Path.Combine(_baseDirectory, path)); 
> }
> config.Load(reader); 
> } 
> 
> 
>  On 5/24/05, Ron Grabowski <[EMAIL PROTECTED]> wrote: 
> > 
> > I think the existing signature:
> > 
> > ConfigureAndWatch(string, ConfigureHandler)
> > 
> > should continue to work the way it does with regards to the file
> path
> > being relative to the application's base directory. A new overrload
> > could be added:
> > 
> > ConfigureAndWatch(FileInfo, ConfigureHandler)
> > 
> > That would allow you pass in a file from wherever you wanted. The
> > Resources class may need the following method added too:
> > 
> > GetConfigAsXmlDocument(FileInfo)
> > 
> > because:
> > 
> > GetConfigAsXmlDocument(string)
> > 
> > is relative to the application's base directory.
> > 
> > You may want to create a sub-task from this issue becuase the two
> > issues seem to be related:
> > 
> > http://issues.apache.org/jira/browse/IBATISNET-31
> > 
> > --- Bob Hanson <[EMAIL PROTECTED]> wrote:
> > > I was not subscribed to this list. Thanks for pointing it out
> Ron.
> > > I'm
> > > emailing here first before opening a Jira issue. LMK if should
> just
> > > go to Jira first in the future.
> > >
> > > I just downloaded and attempted to use 1.1.0.458.
> > >
> > > IBatisNet.DataMapper.SqlMapper still does not support a non
> project
> > > relative filename.
> > >
> > > I create separate Mapper singletons for each of my databases used
> in
> > > my DAL. I then make a call like:
> > > _mapper = SqlMapper.ConfigureAndWatch(@"c:/Web Services/DB
> > > Configuration/Transmission/TransmissionMap.config", handler);
> > >
> > > ConfigurateAndWatch calls
> > > IBatisNet.Common.Utilities.Resources.GetConfigAsXmlDocument()
> which
> > > assumes a project relative filename.
> > >
> > > My previous version hack looks like:
> > > public static XmlDocument GetConfigAsXmlDocument(string fileName)
> > > {
> > > XmlDocument config = new XmlDocument();
> > >
> > > try
> > > {
> > > XmlTextReader reader;
> > > if ((fileName[1] == ':' && fileName[2] == '\\') || fileName[0] ==
> > > '\\' ||
> > > fileName.ToLower().Substring(0, 7) == "file://")
> > > { // detects paths starting with drive:, \, \\
> > > reader = new XmlTextReader(fileName);
> > > }
> > > else
> > > {
> > > reader = new XmlTextReader(_baseDirectory +
> > > Path.DirectorySeparatorChar + fileName);
> > > }
> > > config.Load(reader);
> > > reader.Close();
> > > }
> > > catch(Exception e)
> > > {
> > > throw new ConfigurationException(
> > > string.Format("Unable to load config file \"{0}\". Cause : ",
> > > fileName,
> > > e.Message ) ,e);
> > > }
> > >
> > > return config;
> > > }
> > >
> >
> 

Reply via email to