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;
> > > }
> > >
> >
>