遍历每个 zip 文件夹以获取其中的文件名称列表并保存在单个表中你好,
我需要一些帮助。我尝试编写 jsl,但遇到了困难,希望有人能指导我。
我有一个包含 10000 多个压缩文件夹的目录。每个压缩文件夹都有 100 多个文件。
我想在不解压的情况下执行下面的任务,而无需解压压缩文件夹。
1)获取每个压缩文件夹的名称。
2)进入单独的压缩文件夹。
3)获取压缩文件夹中的文件。
4)在表中,在第 1 列添加压缩文件夹名称,在第 2 列添加其文件名称。
5)对下一个压缩文件夹重复步骤1)-4),直到全部完成。
提前致谢
内容组织质量与工艺工程回复:遍历每个 zip 文件夹以从中获取文件名列表并保存在一个表中你好,我能得到文件名列表。 我想添加包含每个压缩文件夹中特定字符串的步骤打开文件,然后将所有内容连接到一个表中。 我按如下方式修改了脚本,但似乎无法打开这些文件(总共有 6000 多个)。文件名包含“rag”的6000+个文件是“.log”类型的文件。
有没有一种方法可以在不打开所有 6000 多个文件的情况下将文件附加到同一个表中,然后只连接?
路径 = "C:\Users\Desktop\test\";
文件夹 = 目录中的文件(路径);
表={};
For( i = 1, i <= N Items( 文件夹 ), i++,
如果(Word(-1,文件夹[i],“。”)==“zip”,
theFolder = Open( 路径 || 文件夹[i], zip );
dirList = theFolder << dir;
对于( k = 1, k <= N 项( dirList ), k++,
如果(包含(目录列表[i],“抹布”),
rag_file = theFolder << 读取(dirList[i],格式(blob));
打开(路径 || 文件夹[i] ||“\” || rag_file);
Insert Into(tables, data table(path || folders[i]));
);
);
);
);
dt = 新表 ("all_rag_files");
dt << 连接(表,附加到第一个表(1),创建源列);
回复:遍历每个 zip 文件夹以从中获取文件名列表并保存在一个表中这段代码可能会让你开始:
NamesDefaultToHere(1);
myFolder = PickDirectory("Pick Folder", "$DESKTOP");
zipList = FilesInDirectory(myFolder);
col1Vals = {};
col2Vals = {};
for(z=1, z<=NItems(zipList), z++,
filePath = myFolder||"/"||zipList[z];
thisZIP = Open(filePath, zip);
filesInThisZIP = thisZIP << dir;
for(f=2, f<=NItems(filesInThisZIP), f++,
if(NItems(Words(filesInThisZIP[f], "/")) == 2,
InsertInto(col1Vals, zipList[z]);
InsertInto(col2vals, filesInThisZIP[f]);
);
);
Close(thisZIP, noSave);
);
NewTable("Folder of ZIP Files",
NewColumn("Folder Name", Character, Values(col1Vals)),
NewColumn("File Name", Character, Values(col2Vals))
);回复:遍历每个 zip 文件夹以从中获取文件名列表并保存在一个表中这是我拼凑的一个简单脚本,使用以前处理 zip 文件的社区条目。看看它是否适合你。
Names Default To Here( 1 );
directory = Pick Directory( "Select Directory that contains the Zip files" );
folders = Files In Directory( directory );
dt = New Table( "Zip Files",
New Column( "Folder Name", character ),
New Column( "File Name", character )
);
For( i = 1, i <= N Items( folders ), i++,
If( Word( -1, folders[i], "." ) == "zip",
theFolder = Open( directory || folders[i], zip );
dirList = theFolder << dir;
For( k = 1, k <= N Items( dirList ), k++,
dt << add rows( 1 );
numRows = N Rows( dt );
dt:Folder Name[numRows] = folders[i];
dt:File Name[numRows] = dirList[k];
);
)
);
回复:遍历每个 zip 文件夹以从中获取文件名列表并保存在一个表中查看相当新的 Uncharted 博客文章ZIP 中选定 CSV 的 MFI . 它可能会提供一些很好的想法来解决这个问题。
脚本索引似乎也有关于 ZipArchive 的文档:
