在以下代码段中:
ServletContext context = request.getServletContext();
String path = context.getRealPath("/");
Run Code Online (Sandbox Code Playgroud)
是什么/
在方法getRealPath()
代表什么呢?我应该什么时候使用它?
我正在尝试生成一个XML文件并将其保存/WEB-INF/pages/
.
下面是我使用相对路径的代码:
File folder = new File("src/main/webapp/WEB-INF/pages/");
StreamResult result = new StreamResult(new File(folder, fileName));
Run Code Online (Sandbox Code Playgroud)
在本地计算机上作为应用程序运行时,它工作正常 (C:\Users\userName\Desktop\Source\MyProject\src\main\webapp\WEB-INF\pages\myFile.xml).
但是当在服务器机器上部署和运行时,它会引发以下异常:
javax.xml.transform.TransformerException:java.io.FileNotFoundException C:\ project\eclipse-jee-luna-R-win32-x86_64\eclipse\src\main\webapp\WEB INF\pages\myFile.xml
我也尝试getServletContext().getRealPath()
了,但它正在null
我的服务器上返回.有人可以帮忙吗?
我正在寻找一个如何在C程序中使用realpath函数的示例.我似乎无法在网上或我的任何C编程书中找到一个.
我已经读过了realpath()
,但是有一个函数,我可以传递一个基本目录和一个文件名,它会给我以下结果而不解析符号链接或检查文件是否确实存在?或者我必须使用修改realpath()
?
"/var/", "../etc///././/passwd" => "/etc/passwd"
Run Code Online (Sandbox Code Playgroud) 我需要在我的WebContent目录中获取文件的真实路径,以便我使用的框架可以访问该文件.它只将String文件作为属性,因此我需要在WebContent目录中获取该文件的真实路径.
我使用Spring Framework,因此应该可以在Spring中进行解决方案.
realpath
做我需要的,但只有在路径中的文件确实存在时才有效.
无论目录/文件是否实际存在,我都需要一个从字符串(例如../some/./directory/a/b/c/../d
到some/directory/a/b/d
)返回规范化路径的函数
基本上相当于PathCanonicalize
在Windows上.
这样的功能是否已经存在?
显然,realpath
是非常错误的.在PHP 5.3.1中,它会导致随机崩溃.在5.3.0及更低版本中,realpath
随机失败并返回false(对于相同的字符串),加上它总是失败 - realpath
同一个字符串两次/更多(当然,它第一次工作).
此外,它在早期的PHP版本中是如此的错误,它完全无法使用.嗯......它已经是,因为它不一致.
无论如何,我有什么选择?也许自己重写一下?这是可取的吗?
我使用MediaWiki但是有错误.我在文件中找到了它.这段代码有一行:
$IP = realpath( '.' );
Run Code Online (Sandbox Code Playgroud)
但是$ IP返回一个空字符串,因此系统中文件的路径不起作用.(例如,如果$ IP将是.
或E:/path_to_wwwroot
它的工作原理).我该如何解决这个问题.我的提供商是否可能阻止访问realpath?
谢谢!
我一直无法弄清楚实际路径缓存实际上在做什么.
以下是我的一些问题:
每个请求都有缓存吗?即多个缓存,或只是一个规范的实路缓存?
我注意到,如果你转储缓存var_dump(realpath_cache_get())
并保持,刷新页面,Ctrl+ F5,缓存转储有时会有不同的输出??? 这里发生了什么?
如何以及何时清除/清除缓存?后台进程,某种垃圾收集器.例如,它是一个垃圾收集器:什么时候运行,它运行的标准是什么?是每个请求,例如随机请求吗?我不知道,我只是在这里吐痰.
注意:您似乎可以通过调用手动清除缓存clearstatcache(true)
.
realpath_cache_size
"16K"
PHP_INI_SYSTEM
从PHP 5.1.0开始提供.
realpath_cache_ttl
"120"
PHP_INI_SYSTEM
从PHP 5.1.0开始提供.
(来自手册)
realpath_cache_size
integer
确定PHP使用的实际路径缓存的大小.在PHP打开许多文件的系统上应该增加此值,以反映执行的文件操作的数量.
realpath_cache_ttl
integer
缓存给定文件或目录的实际路径信息的持续时间(以秒为单位).对于文件很少更改的系统,请考虑增加该值.
我正在使用此函数从uri获取图像路径:
private static String getRealPathFromURI(Context context, Uri contentUri) {
Cursor cursor = null;
try {
String[] proj = {MediaStore.Images.Media.DATA};
cursor = context.getContentResolver().query(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
} finally {
if (cursor != null) {
cursor.close();
}
}
}
Run Code Online (Sandbox Code Playgroud)
版本<23时,上述功能正常.但它与android marshmallow返回null?
I am using emulator nexus 4 with android 6.0 x86_64
Run Code Online (Sandbox Code Playgroud)
模拟器具有存储权限.
可能是什么问题?