找不到映像路径文件



我花了很长时间试图解决这个问题,但没有成功。我搜索了stackoverflow和谷歌,都没能解决我(看似)简单的问题。

我在下面的行中得到一个FileNotFoundException:

Image.FromFile("\Resources\Icons\key-icon.png");

文件夹和图像真的在那里,我看不出问题是什么。

您应该考虑它是从"yourproject/bin/Release"启动的,因此您需要转到2个目录。这样做:

Image.FromFile("..\..\Resources\Icons\key-icon.png"); 

尝试使用绝对路径而不是相对路径。。。即

Image.FromFile(Server.MapPath(@"~ResourcesIconskey-icon.png"));
Image.FromFile(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
                            @"Resources\Icons\key-icon.png"))

基本目录组合您的文件名

您可能缺少前导".":

Image.FromFile(".\Resources\Icons\key-icon.png");

在内部,Image.FromFile使用File.Exists来检查文件是否存在。当:时,此方法返回false

  • 文件不存在(有意义)
  • 当前进程标识没有读取文件的权限

第二种选择可能是你的问题。

还有另一种可能性:Resources是网络共享吗?在这种情况下,您应该使用以下内容:

Image.FromFile("\\Resources\Icons\key-icon.png");

在这种情况下,我发现sikuli不会自动检测项目的根文件夹。对于这种情况,您应该使用命令System.getProperty("user.dir"); 指定文件夹

import org.sikuli.script.*;
public class Test {
    public static void main(String[] args) {
            Screen s = new Screen();
            try{
                    String pathYourSystem = System.getProperty("user.dir") + "\";
                    s.click(pathYourSystem + "imgs/spotlight.png");
                    //s.wait(pathYourSystem + "imgs/spotlight-input.png");
                    //s.click();
                    s.write("hello world#ENTER.");
            }
            catch(FindFailed e){
                    e.printStackTrace();
            }
    }
}

最新更新