无法找到正确的文件路径

时间:2014-07-17 13:45:40

标签: java selenium-webdriver

我正面临修复正确文件路径的问题。

我有一个配置文件,以下是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);
        }
    }

2 个答案:

答案 0 :(得分:1)

我猜你想做的是:

String str= strpath.replaceAll("\\\\","\\")

\是String中的特殊字符。要像对待普通角色一样对待它,请在其前面放置另一个\,因此'\'实际上是'\\'

对于您的情况,我认为您要使用.replace()而不是.replaceAll()

答案 1 :(得分:0)

调试时,strpath是否从配置文件中获取了正确的路径?我还要确保您引用了正确的文件路径(将该位置粘贴到Windows资源管理器中并查看该文件是否存在)。如果D:\是共享驱动器,请使用实际的服务器位置。

此外,您可以确保Excel工作簿的扩展名为.xls而不是.xlsx。