我需要通过URL创建新闻简报.我要做下一个:
但是我对路径有些麻烦.所有元素的来源都是相对的(/img/welcome.png),但我需要绝对(http://www.mysite.com/img/welcome.png).
我怎样才能做到这一点?
最好的问候,Alex.
是否可以获取正在执行的文件名.例如,如果我正在运行Jar文件,并且我想在内部添加可以检测文件名的代码功能,以便在重命名此jar时,代码应该能够检测到它.
是否有可能在不扫描当前目录中的文件的情况下执行此操作?
是否可以将绝对路径转换为批处理文件中的相对路径?(与此相反).显然,您需要两个输入:转换的绝对路径,以及您希望将其相对化的绝对参考路径.
例如:
Path to convert: c:\documents\mynicefiles\afile.txt
Reference path: c:\documents
Result: mynicefiles\afile.txt
Run Code Online (Sandbox Code Playgroud) 我正在使用这样的东西:
std::string tempDirectory = "./test/*";
WIN32_FIND_DATA directoryHandle;
memset(&directoryHandle, 0, sizeof(WIN32_FIND_DATA));//perhaps redundant???
std::wstring wideString = std::wstring(tempDirectory.begin(), tempDirectory.end());
LPCWSTR directoryPath = wideString.c_str();
//iterate over all files
HANDLE handle = FindFirstFile(directoryPath, &directoryHandle);
while(INVALID_HANDLE_VALUE != handle)
{
//skip non-files
if (!(directoryHandle.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
{
//convert from WCHAR to std::string
size_t size = wcslen(directoryHandle.cFileName);
char * buffer = new char [2 * size + 2];
wcstombs(buffer, directoryHandle.cFileName, 2 * size + 2);
std::string file(buffer);
delete [] buffer;
std::cout << file;
}
if(FALSE == FindNextFile(handle, &directoryHandle)) …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用HttpClient将文件上传/删除到webdav服务器.但是,只要文件名由空格组成,就没有任何工作.我收到一条错误消息"无效的URI ---转义的绝对路径无效".
这个我的URL ="http:// localhost:8080/test file.txt"
private boolean delete(String fileName) {
HttpClient client = new HttpClient();
HttpHost host = new HttpHost(WEBDAV_URL, PORT_NUMBER);
client.getHostConfiguration().setHost(host);
DeleteMethod del = new DeleteMethod(WEBDAV_URL_COMPLETE + fileName);
try {
client.executeMethod(del);
return true;
} catch (HttpException e) {
e.printStackTrace();
return false;
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我应该使用任何方法或URL解析来解决问题
谢谢
编辑,通过用" %20 " 替换空格来找到解决方案.
**
URL.replaceAll("","%20")
**
我在用
URL res = this.getClass().getClassLoader().getResource(dictionaryPath);
String path = res.getPath();
String path2 = path.substring(1);
Run Code Online (Sandbox Code Playgroud)
因为方法getPath()的输出返回sth,如下所示:
/C:/Users/......
Run Code Online (Sandbox Code Playgroud)
我需要这个
C:/Users....
Run Code Online (Sandbox Code Playgroud)
我真的需要以下地址,因为一些外部库拒绝在开头使用斜杠或使用file:/开头或其他任何东西.
我在URL中尝试了几乎所有的方法,比如toString()toExternalPath()等,并且使用URI完成相同的操作,并且没有一个像我需要的那样返回它.(我完全不明白,为什么它在开头保留斜线).
只需擦除第一个字符就可以在我的机器上完成.但是一位朋友试图在linux上运行它,因为那里的地址不同,它不起作用......
应该有这样的问题?
我只是测试开源软件Geonetwork的一些东西,现在我想将一个形状文件从我的postGIS数据库导出到我的计算机但我无法测试它因为我总是得到一个findbugs警告:硬编码引用org中的绝对路径名. fao.geonet.services.resources.Download.exec(Element,ServiceContext)
有谁知道如何抑制或避免这种警告?或者另一种解决方案我如何测试导出是否有效?
这是代码:
` Map parameter1= new HashMap();
parameter1.put("dbtype", "postgis");
parameter1.put("host", "localhost");
parameter1.put("port", "5433");
parameter1.put("database", "geonetwork");
parameter1.put("schema", "mydata");
parameter1.put("user", "postgres");
parameter1.put("passwd", "dominik1");
parameter1.put("Expose primary keys", false);
parameter1.put(PostgisNGDataStoreFactory.VALIDATECONN, true);
parameter1.put(PostgisNGDataStoreFactory.MAX_OPEN_PREPARED_STATEMENTS, 100);
parameter1.put(PostgisNGDataStoreFactory.LOOSEBBOX, true);
parameter1.put(PostgisNGDataStoreFactory.PREPARED_STATEMENTS, true);
System.out.println("parameter1: " + parameter1);
DataStore pds = new PostgisNGDataStoreFactory().createDataStore(parameter1);
FeatureSource fs = pds.getFeatureSource("dano");
SimpleFeatureCollection fc = (SimpleFeatureCollection) fs.getFeatures();
SimpleFeature f = (SimpleFeature) fc.toArray()[0];
// create shapefile
File sfile = new File("C:/Users/Tinis/Downloads/dano.zip");
parameter1 = new HashMap();
parameter1.put("url", sfile.toURI().toURL());
parameter1.put("create spatial index", Boolean.FALSE);
DirectoryDataStore dds = new …Run Code Online (Sandbox Code Playgroud) 我在Unix(csh)上经常使用find命令。
结果是否可能是完整/绝对路径,并且将从我开始搜索的目录开始
例如,从中运行命令时
/project/Test/v0.15/test/frontend,结果为:
./core/serdes_complex/frontend/lib/lib_behave.f
./core/serdes_complex/frontend/lib/test_srd_compile.f
Run Code Online (Sandbox Code Playgroud)
但是我想得到
/project/Test/v0.15/test/frontend/core/serdes_complex/frontend/lib/lib_behave.f
/project/Test/v0.15/test/frontend/core/serdes_complex/frontend/lib/test_srd_compile.f
Run Code Online (Sandbox Code Playgroud) 在我的React Native应用程序中,package.json我已经将名称设置为rpms.这允许我这样做:
import Component from 'rpms/App/common/Component'
Run Code Online (Sandbox Code Playgroud)
流程相处融洽这种类型的进口,但是eslint-插件进口提高import/no-extraneous-dependencies,以及import/no-unresolved.我添加了我的规则:
"import/no-unresolved": [2, { "ignore": ["rpms"] }],
Run Code Online (Sandbox Code Playgroud)
那样我断开了import/no-unresolved.要禁用另一个我试过的:
"settings": {
"import/ignore": ["rpms"]
},
Run Code Online (Sandbox Code Playgroud)
然而,它不起作用.但是,我有一种感觉,也许忽略这些错误并不是正确的方法.
背景故事:
我正在逐步将现有的 React Native 项目转换为 TypeScript。根据我的配置,绝对路径已经工作多年babelrc。
问题:
自从添加 TypeScript 后,绝对路径仅在以下场景中起作用:
js到其他js文件中ts将文件导入到js文件中js将文件导入到ts文件中不起作用的是:
ts到其他ts文件中它似乎可以在 VSCode 中工作,但是当我尝试构建我的应用程序时,我得到了臭名昭著的信息:
在项目内或以下目录中找不到{在此处插入文件}:node_modules 等。
我花了几周的时间试图解决这个问题。TypeScript 的绝对路径似乎是很多人遇到的挑战。我对我的babelrc、tsconfig、eslintrc、 和metro.config.js进行了无数的组合和加法/减法。我已经安装了依赖项,我已经尝试了错误建议的所有内容(删除缓存、重新启动等)。我玩弄了导入语句并搜索了文档,直到我遍体鳞伤,重新安装node_modules并pods。
唯一有效的事情(除了相对导入之外,但是 ew)是将 a 添加package.json到我尝试导入的文件夹中,如下所示:
{
"name": "app"
}
Run Code Online (Sandbox Code Playgroud)
这看起来很简单,但我不能接受这是唯一的方法。package.json随着我转换越来越多的文件,我真的不想像一些劳累过度的打字稿仙女一样到处洒水:)
我不想让它太长,所以如果有人认为查看我的配置文件会有好处,我肯定可以添加它们。特别希望得到官方消息来源的答复。超级感谢任何人的帮助!
absolute-path ×10
java ×3
directory ×2
react-native ×2
url ×2
windows ×2
asp.net ×1
batch-file ×1
c++ ×1
csh ×1
eslint ×1
file ×1
filesystems ×1
find ×1
findbugs ×1
hardcoded ×1
html ×1
path ×1
typescript ×1
unix ×1
uri ×1