我正面临修复正确文件路径的问题。
我有一个配置文件,以下是config.properties中的条目:
strMasterTestSuiteFilePath="D:\\KeywordDrivenFramework\\MasterTestSuiteFile.xls"
然后我尝试将此属性视为
Properties prop=new Properties();
prop.load("config.properties")
String strpath=prop.getProperty("strMasterTestSuiteFilePath")
Syso(strpath) //prints above path with single slash as D:\KeywordDrivenFramework\MasterTestSuiteFile.xls
//When i use the same var for File existance check it say not exists
File obj=new File(strpath)
if(obj.exists())
Syso("Exists....")
else
Syso("Does not exist....")
为什么它会阻止,即使文件存在于路径?
如何克服它?
我试过了
String str= strpath.replaceAll("\","\\")
//但我得到一些语法错误“String类型中的方法replaceAll(String,String)不适用于参数(String)”
任何人都可以帮我解决这个问题吗?
找到我正在尝试的代码,我哪里出错?
public void LoadMasterTestSuite()
{
String strGlobalConfigSettingFilePath=System.getProperty("user.dir")+"/src/GlobalConfigurationSettings.properties";
FileInputStream objFIS; //Variable to hold FileSystem Objet
File objFile; //Variable to hold File Object
try
{
objFIS = new FileInputStream(new File(strGlobalConfigSettingFilePath));
globalObjProp.load(objFIS);
strMasterTSFilePath=globalObjProp.getProperty("strMasterTestSuiteFilePath");
objAppLog.info("Master Test Suite File Path configured as "+strMasterTSFilePath);
}catch (FileNotFoundException e)
{
objAppLog.info("Unable to find Global Configuration Settings File. So aborting...");
e.printStackTrace();
}catch (IOException e)
{
e.printStackTrace();
}
String str=strMasterTSFilePath.replace("\\", "\\\\");
objFile=new File(str);
System.out.println(str);
if(objFile.exists())
{
LoadTestSuite(strMasterTSFilePath);
}
else
{
objAppLog.info("Master Test Suite File not found at Path: "+strMasterTSFilePath);
System.exit(-1);
}
}
答案 0 :(得分:1)
我猜你想做的是:
String str= strpath.replaceAll("\\\\","\\")
\
是String中的特殊字符。要像对待普通角色一样对待它,请在其前面放置另一个\
,因此'\'
实际上是'\\'
。
对于您的情况,我认为您要使用.replace()
而不是.replaceAll()
。
答案 1 :(得分:0)
调试时,strpath是否从配置文件中获取了正确的路径?我还要确保您引用了正确的文件路径(将该位置粘贴到Windows资源管理器中并查看该文件是否存在)。如果D:\是共享驱动器,请使用实际的服务器位置。
此外,您可以确保Excel工作簿的扩展名为.xls而不是.xlsx。