我正在创建一个Java应用程序,我正在使用log4j.我已经给出了配置log4j文件的绝对路径以及生成的日志文件的绝对路径(生成此日志文件的位置).我可以在运行时通过以下方式获取Java Web应用程序的绝对路径:
String prefix = getServletContext().getRealPath("/");
Run Code Online (Sandbox Code Playgroud)
但在普通Java应用程序的上下文中,我们可以使用什么?
请在下面找到我的代码.我需要获取用户从SDcard中选择的pdf文档的文件路径.问题是URI.getPath()返回:
/file:///mnt/sdcard/my%20Report.pdf/my Report.pdf
Run Code Online (Sandbox Code Playgroud)
正确的道路是:
/sdcard/my Report.pdf
Run Code Online (Sandbox Code Playgroud)
请注意我在stackoverflow上搜索但是找到了获取图像或视频的filePath的示例,在PDF的情况下没有如何获取文件路径的示例?
我的代码,不是所有代码,只有pdf部分:
public void openPDF(View v)
{
Intent intent = new Intent();
//intent.setType("pdf/*");
intent.setType("application/pdf");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Pdf"), SELECT_PDF_DIALOG);
}
public void onActivityResult(int requestCode, int resultCode, Intent result)
{
if (resultCode == RESULT_OK)
{
if (requestCode == SELECT_PDF_DIALOG)
{
Uri data = result.getData();
if(data.getLastPathSegment().endsWith("pdf"))
{
String pdfPath = data.getPath();
}
else
{
CommonMethods.ShowMessageBox(CraneTrackActivity.this, "Invalid file type");
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我如何从URI获取正确的路径?
我需要知道哪条是给定路径的真正路径.
例如:
真正的路径是:d:\ src\File.txt
用户给我:D:\ src\file.txt
我需要的结果是:d:\ src\File.txt
当我的应用程序在iPhone上运行时,我有一个错误,但是当它在模拟器上运行时却没有.我使用主目录路径的长度来提取/ Documents中文件的相对路径.不幸的是,这并不总能在iPhone上正常工作,因为前缀"/ private"正被添加到主路径中.但是,无论有没有前缀,都可以引用相同的文件.以下代码演示了这种不一致性."/ private"的目的是什么?它何时由iOS提供?
- (IBAction)testHomepath:(id)sender {
NSFileManager *fmgr = [NSFileManager defaultManager];
NSString *homePath = [NSString stringWithFormat:@"%@/Documents",NSHomeDirectory()];
NSString *dirPath = [homePath stringByAppendingPathComponent:@"TempDir"];
NSURL *dirURL = [NSURL fileURLWithPath:dirPath];
NSString *filePath = [dirPath stringByAppendingPathComponent:@"test.jpg"];
[fmgr createDirectoryAtPath:dirPath withIntermediateDirectories:NO attributes:nil error:nil];
[fmgr createFileAtPath:filePath contents:nil attributes:nil];
NSArray *keys = [[NSArray alloc] initWithObjects:NSURLNameKey,nil];
NSArray *files = [fmgr contentsOfDirectoryAtURL:dirURL includingPropertiesForKeys:keys options:0 error:nil];
NSURL *f1 = (files.count>0)? [files objectAtIndex:0] : 0;
NSURL *f2 = (files.count>1)? [files objectAtIndex:1] : 0;
bool b0 = [fmgr fileExistsAtPath:filePath];
bool b1 = [fmgr …Run Code Online (Sandbox Code Playgroud) 我需要在Windows中浏览具有长文件名的文件夹.
我尝试使用os.listdir(),但它崩溃了很长的路径名,这很糟糕.
我试过使用os.walk(),但它忽略了长于~256的路径名,这更糟糕.
我尝试了这里描述的魔术解决方法,但它只适用于映射驱动器,而不适用于UNC路径名.
下面是一个使用短路径名的示例,它显示UNC路径名不适用于魔术词诀.
>>> os.listdir('c:\\drivers')
['nusb3hub.cat', 'nusb3hub.inf', 'nusb3hub.sys', 'nusb3xhc.cat', 'nusb3xhc.inf', 'nusb3xhc.sys']
>>> os.listdir('\\\\Uni-hq-srv6\\router')
['2009-04-0210', '2010-11-0909', ... ]
>>> mw=u'\\\\?\\'
>>> os.listdir(mw+'c:\\drivers')
[u'nusb3hub.cat', u'nusb3hub.inf', u'nusb3hub.sys', u'nusb3xhc.cat', u'nusb3xhc.inf', u'nusb3xhc.sys']
>>> os.listdir(mw+'\\\\Uni-hq-srv6\\router')
Traceback (most recent call last):
File "<pyshell#160>", line 1, in <module>
os.listdir(mw+'\\\\Uni-hq-srv6\\router')
WindowsError: [Error 123] The filename, directory name, or volume label syntax is incorrect: u'\\\\?\\\\\\Uni-hq-srv6\\router\\*.*'
Run Code Online (Sandbox Code Playgroud)
关于如何处理长路径名或使用unicode UNC路径名的任何想法?
编辑:
根据以下评论的建议,我创建了一些测试函数来比较Python 2.7和3.3,并添加了测试glob.glob和os.listdir之后的测试os.chdir.
os.chdir没有像预期的那样有帮助(见本评论). …
我想获取一个没有路径的文件名(如果它是字符串的一部分)以及扩展名.
例如:
/path/to/file/fileName.txt # results in "fileName"
fileName.txt # results in "fileName"
/path/to/file/file.with.periods.txt # results in "file.with.periods"
Run Code Online (Sandbox Code Playgroud)
所以基本上,我想要删除之前的任何内容,包括最后一个"/"(如果存在)以及最后一个"." 以及之后的任何元字符.
很抱歉这样的新手问题,但我是perl的新手.
如何从当前文件返回路径名,只有2个目录?
所以,如果我当前的文件URL返回 theme/includes/functions.php
我该怎么回"主题/"
目前我正在使用
return dirname(__FILE__)
Run Code Online (Sandbox Code Playgroud) 如何将文件添加到InstallShield组件,指定InstallShield项目的相对路径,以便在不同的计算机上轻松编译项目?
找出notepad.exe和mspaint.exe在各种版本的Windows中可以使用的最佳方法是什么?
我应该通过SHGetFolderPath(NULL, CSIDL_WINDOWS, NULL, SHGFP_TYPE_CURRENT, dir),然后遍历所有子目录来查找这两个文件吗?
(假设我对Windows文件夹以外的任何内容都不感兴趣.)
我一直在寻找,但我还没有找到解决这个问题的方法:我想创建一个类库,该类库在名为Configuration的子目录下有一个配置文件.我希望将该类库部署到任何地方,我希望它通过了解自己的位置来查找其配置文件.
以前的尝试Assembly.GetExecutingAssembly().Location没有奏效.
它会返回临时位置,例如
C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\7c00e0a3\38789d63\assembly\dl3\9c0a23ff\18fb5feb_6ac3c901
而不是期望的
bin/Configuration 路径.
所以: