在jsp頁面上放input,輸入文件名,查詢出文件的路徑,要怎么實現呢?文件放在本地磁盤上某個文件夾下,可能是多級文件夾。
解决方案 »
- java 菜鸟问题 变量值的问题
- 有关线程提高效率的问题,求教线程高手。
- 跪求一段打开网页后自动全屏代码!!!!拿分的来!!!只要好使就给分
- java中怎么插入图片(桌面开发)
- 为什么只import java.awt.*; 就可以使用Jframe?不要再import javax.swing.*; ?
- 小弟遇到一个奇怪的问题,不知哪位大哥能给解答一下
- 如何使焦点落在JTextField上后,输入值必须满足一定条件后才可以离开?
- 小妹刚学java 照书上抄的代码怎么会有NullPointerException呢
- java中使用JDBC如何备份DB2数据库??
- 知道哪个国内网站有TOMCAT下载吗?
- 怎么我这代码运行不了!
- Java设置与读取Cookie属性
前台的话用jsfunction searchFile(f) {
var fso, drivers, disk, files, file, folds, fold;
fso = new ActiveXObject("Scripting.FileSystemObject");
drivers = new Enumerator(fso.Drives); //获得所有磁盘
for (; !drivers.atEnd(); drivers.moveNext()) {
disk = drivers.item();
find(disk+"\\", f); //递归调用查找磁盘
if (flag.value == "1") { //设置查找标志,找到就不再找了(同名文件只找第一个)
break;
}
}
alert((flag.value=="1") ? "found" : "not found");
}
function find(dir, f) { //递归查找方法
var fso, folds, fold, files, file;
fso = new ActiveXObject("Scripting.FileSystemObject");
files = new Enumerator(fso.GetFolder(dir).Files); //获得当前文件夹的文件
for (; !files.atEnd(); files.moveNext()) {
file = files.item();
if (file.Name == f) { //文件名相同
flag.value = "1";
alert(file.Path); //提示文件所在路径
break;
}
}
if (flag.value == "1") { //找到就不再查找
return;
}
folds = new Enumerator(fso.GetFolder(dir).SubFolders); //获得子文件夹
for (; !folds.atEnd(); folds.moveNext()) {
fold = folds.item();
find(fold.Path, f); //递归查找子文件夹
if (flag.value == "1") {
return; //
}
}
}<input type="text" value="" name="filename">
<input type="button" value="submit" onclick="searchFile(filename.value);">
<input type="hidden" value="0" name="flag">
如果是后台(把服务器端的信息暴露给前台不知道后台有什么意义),自己写个batch,然后在程序中调用该batch
参考以下文档:
在JAVASCRIPT中创建Scripting.FileSystemObject对象:
var objFile = new ActiveXObject("Scripting.FileSystemObject"); 打开网页时出现下面的错误提示:
automation服务器不能创建对象。
在 winnt/system32 裡有沒有 scrrun.dll
然後執行 regsvr32 Scrrun.dll 即可
不過一般來說 scrrun.dll 應該是不用特別自己去註冊
try {netscape.security.PrivilegeManager.enablePrivilege( 'UniversalFileRead' );}catch (err) {//need to set signed.applets.codebase_principal_support to true}
PS:在firefox中,需要设置:打开"about:config"页面,查找"signed.applets.codebase_principal_support"属性,将其值设置为true原文:http://blog.csdn.net/ol_beta/archive/2010/12/03/6053310.aspx
window下自己写个batch,linux下自己写个shell
batch例子
比如是xxx.bat
调用xxx.bat your_file_name@echo off
set all_disk=c: d: e: f:
set current_dir=%CD%
if "%1"=="" goto def_file
set fname=%1
goto search
:def_file
set driver=test.txt
:search
for %%d in (%all_disk%) do (
if exist %%d (
cd /d %%d
for /f %%I in ('dir /s/b %fname%') do (
if %%~nI%%~xI==%fname% (
echo %%I
cd /d %current_dir%
goto end
)
)
)
)
echo "not found":end
@echo on
shell的例子就不写了,用find命令,自己参考改吧
set all_disk=c: d: e: f:
if "%1"=="" goto def_file
set fname=%1
goto search
:def_file
set fname=test.txt
:search
for %%d in (%all_disk%) do (
if exist %%d (
set driver=%%~dd\
for /R %driver% %%I in (*) do (
if %%~nI%%~xI==%fname% (
echo %%I
goto end
)
)
)
)
echo "not found":end
@echo on