鉴于我有两个File对象,我可以想到以下实现:
public File convertToRelative(File home, File file) {
final String homePath = home.getAbsolutePath();
final String filePath = file.getAbsolutePath();
// Only interested in converting file path that is a
// direct descendants of home path
if (!filePath.beginsWith(homePath)) {
return file;
}
return new File(filePath.substring(homePath.length()+1));
}
Run Code Online (Sandbox Code Playgroud)
有没有更聪明的方法将绝对文件路径转换为相对文件路径?
可能重复:
我在php中有一个Web应用程序.我有一个header.php文件,我有开放的html标签,元数据,css,js文件包含.
我在这个应用程序中有多个文件夹.我给了css,js文件的相对路径header.php.我面临的问题是,当我header.php在其他文件中包含此文件时./test-folder/my-file.php,相对路径会中断.
所以为了解决这个问题,我已经给出了必要的绝对路径.但是每次上传到服务器时我都必须更改这些路径.这可以用其他方式完成吗?
提前致谢
安吉
我想在src属性中使用绝对路径,同时在JSP中包含Javascript和CSS文件.
使用相对URL不符合我的目的,类似于下面的那个:
<script type="text/javascript" src="../js/jquery-1.6.4.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
如果我使用绝对URL,
<script type="text/javascript" src="/appName/js/jquery-1.6.4.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
然后我硬编码不适合的Web应用程序名称...
我找到的最佳选择是:
<base href="${pageContext.request.contextPath}" />
Run Code Online (Sandbox Code Playgroud)
但是,它只适用于href属性 <a href="home.jsp" />
我试图使用streamwriter在我的文档文件夹中创建一个文本文件,但是当我实际使用完整路径时,它认为我正在使用相对路径.
我想透过这个路径的文件:"%HOMEPATH%/我的文档/",但它会将其视为相对路径.
任何帮助将不胜感激,谢谢.
我使用intent过滤器来获取用户使用文件选择器选择的文件的路径,遗憾的是我有问题获取绝对路径,
onActivityResult的路径始终使用各种额外数据启动,这些数据会导致我的应用程序出错
例如
/content/:/myabsolutepath
Run Code Online (Sandbox Code Playgroud)
要么
file:///myabsolutepath
Run Code Online (Sandbox Code Playgroud)
额外的属性取决于文件类型,手机上的文件管理器等.
我只需要获得表单中的绝对路径
/myabsolutepath
Run Code Online (Sandbox Code Playgroud)
这里有我的代码
private void openFile() {
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.setType("file/*");
startActivityForResult(i, FILE_REQ_CODE);
}
protected void onActivityResult(int requestCode, int resultCode, Intent i) {
//String with the path;
path = i.getDataString();
super.onActivityResult(requestCode, resultCode, i);
}
Run Code Online (Sandbox Code Playgroud) 我有一些通过cron运行的python脚本,当使用绝对路径调用脚本时,它们不再正确退出.它们将一直挂起,直到该过程终止.我相信它发生在我将/ var和/ home移动到另一个分区之后.
我检查了环境变量并且看不到任何明显错误,这在使用cron或bash子shell运行时发生,但在直接运行时不会发生.
如果我把它作为子shell运行它会挂起,直到我杀了它(ctrl-c),然后给我输出.
[wotstats@rock test]$ echo 'assert 0==1, "fails"' > test.py
[wotstats@rock test]$ /bin/bash -c "/usr/bin/python /var/home/wotstats/test/test.py"
^CTraceback (most recent call last):
File "/var/home/wotstats/test/test.py", line 1, in <module>
assert 0==1, "fails"
AssertionError: fails
Run Code Online (Sandbox Code Playgroud)
如果我不调用脚本,它会按预期终止而不会挂起:
[wotstats@rock test]$ /bin/bash -c "echo 'assert 0==1, \"fails\"' | /usr/bin/python"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionError: fails
Run Code Online (Sandbox Code Playgroud)
发生异常时,我会立即收到日志错误:
Dec 9 13:33:44 rock abrt: detected unhandled Python exception in '/var/home/wotstats/test/test.py'
Run Code Online (Sandbox Code Playgroud)
我根据输入运行了一些测试,发现即使调用/test.py和以root身份运行时也会出现此问题.我也尝试/ root和/ usr具有相同的效果.
这里询问了类似或相同的问题,并通过重新启动解决; 如果可以的话,我宁愿弄明白并避免重启.
Url.Content()在我的观点中,我到处都有片段.它们在具有简单URL的页面上工作正常,但在URL变长时则不行.
这是一个示例:
<img src="@Url.Content("~/Content/Images/logo.png")" id="logo">
Run Code Online (Sandbox Code Playgroud)
当我在主页上或带有URL的页面localhost:8080/s/chocolate(显示"巧克力"搜索的结果时),这种方法很好.
但是当我试图添加一些改进时,例如localhost:8080/s/chocolate/b/lindt(这意味着将之前的结果仅过滤到品牌Lindt的那些),它就不再起作用了.在这种情况下,Url.Content指向/s/chocolate/Content/Images/logo.png,显然失败.
就好像Url.Content只在当前位置上升了2级而不是使用Web应用程序的真实根.我认为在约定中URL有主体/控制器/动作形式是有道理的,但在这里我有一个更复杂的URL方案(我使用URL重写器模块将这些URL片段与动作的参数相匹配).
有没有办法告诉帮助者去真正的根,或任何其他解决这个问题的方法?
(顺便说一下,我正在使用MVC 4)
<img src="@Url.Content(string.Format("~/Content/Images/stores/{0}.png", cart.Store.Retailer.Id))"/>
Run Code Online (Sandbox Code Playgroud)
我只是删除了Url.content,因此:
<img src="@string.Format("~/Content/Images/stores/{0}.png", Model.PreferedCart.Store.Retailer.Id)"/>
Run Code Online (Sandbox Code Playgroud)
渲染时,这给出了以下src : ~/Content/Images/stores_v2/Fr_SimplyMarket.png. 该~暂时还在这里,图像没有发现.我该如何解决这个问题?
我实际上有以下情况,那就是实际工作:
想象一下,你必须以root身份在一个文件上工作,但你想要自己的.vimrc,而不需要调用"-u".所以我开始使用以下"插件":
let g:realuser=system('w | grep $(ps w | grep ' . getpid() . ' | head -n1 | awk "{ print \$2 }") | awk "{ print \$1 }"')
if $USER == 'root'
let g:vimrc=system('printf /home/%s/.vimrc '. g:realuser)
if filereadable(g:vimrc)
exec ":source " . g:vimrc
finish
endif
endif
Run Code Online (Sandbox Code Playgroud)
我把它称为"realuser.vim",并在root的.vimrc(/root/.vimrc)中"源"它.
如果您现在通过SSH或通过Gnome在ubuntu上登录您的服务器,您可以"su - "并以root用户身份登录.然后你切换到你的工作目录并打开文件.该脚本检测到登录到该计算机的真实用户是"yourlogin".然后检查是否存在/ home/yourlogin /文件".vimrc".所以,它是,它加载它.
我的问题是,在/home/yourlogin/.vimrc中是以下行:
source ~/.vim/plugin/someplugin.vim
Run Code Online (Sandbox Code Playgroud)
所以猜猜是什么./root/.vimrc加载/home/yourlogin/.vimrc,因此检入/root/.vim/plugin/someplugin.vim,这是不存在的,因为它只在/home/yourlogin/.vim中
我怎样才能使用相对路径或者像这样告诉vim源文件只在/home/yourlogin/.vim/?
如果需要澄清,请告诉我.如果无法完成,请告诉我.我拼命地试图弄明白这一点
我在以下网站上关注Google的Dev指南:
https://developers.google.com/+/web/share/
我似乎无法弄清楚如果可能的话,如何使用自定义图标并使用当前的URL而不必指定URL.
我发现他们网站的这一部分指定了锚标记地址:
"https://plus.google.com/share?url={URL}"
Run Code Online (Sandbox Code Playgroud)
这将允许我使用自定义图标(并且我可以使用自定义图标的唯一方法)和一些其他自定义参数.但看起来这个方法需要一个指定的URL,据我所知,它没有提供动态创建链接的方法,具体取决于当前页面.
如果我在顶部使用代码生成器,它将使用当前页面,但它调用Google托管的Java脚本,此外,当我将鼠标悬停在图标上时,它会弹出一个悬停链接.当然,我也不能在发电机上使用自定义图标.
我一直在谷歌搜索我能想到的每个搜索词,并搜索这个网站,我还没有找到其他人提出这个问题.我想通过大约20-30分钟的搜索后我不会通过搜索找到我的答案,所以我道歉,如果这已经得到回答.
只是我的一些经验背景,让我知道我的位置:我对HTML和CSS的运作有一个很好的把握.但是,Javascript,我理解非常基本的理论,而且就此而言.然而,我绝对打算学习,因为它将证明是一项非常有价值的技能.
非常感谢你!!
我想我知道需要做什么,但是......我不知道该怎么做(或者它是否会起作用):
我的共享链接需要链接到查看当前页面URL的脚本,然后获取该信息,并从中创建一个动态链接,将用户带到以下链接:https://plus.google.com/分享?url = {来自查询的网址将在这里}.
我认为这可能有用......听起来就像它会.有什么想法吗?如果是这样,围绕它的任何简单脚本都会这样做?
双重感谢!!
- 我终于发现了一些有效的东西,但它使用的是Javascript而我并不完全理解它,只是足以调整它.我花了很长时间才找到它,但它适用于Google Plus,Facebook或Twitter!(我相信它可以与提供需要指定URL的共享链接的任何其他网站一起使用)
在这里,我仍在寻找更好的解决方案,但这正是我所寻求的:
<a href="javascript:(
function(){
var w=480;var h=380;
var x=Number((window.screen.width-w)/2);
var y=Number((window.screen.height-h)/2);
window.open('https://plus.google.com/share?url='+encodeURIComponent(location.href)+'
&title='+encodeURIComponent(document.title),'','width='+w+',height='+h+',left='+x+',top='+y +',
scrollbars=no');
})();" style="background: url(/wp-content/themes/HTML5/images/googleplus.png) no-repeat scroll left center transparent;">
Share to Google+</a>
Run Code Online (Sandbox Code Playgroud) 我有这样的网址:
http://example.com/path/to/css/../../images/test.jpg
我想将其转换为绝对值,如下所示:
http://example.com/path/images/test.jpg
我正在寻找Nodejs中的模块来执行相同的操作。模块,路径执行相同的操作。但是(path.resolve)也带有目录路径。
我正在寻找类似的东西,但网址。
absolute-path ×10
android ×1
asp.net-mvc ×1
c# ×1
contextpath ×1
filechooser ×1
google-plus ×1
hang ×1
header-files ×1
java ×1
jsp ×1
linux ×1
node.js ×1
path ×1
php ×1
python ×1
relative-url ×1
streamwriter ×1
url ×1
vim ×1