Re: ZIP ファイルのサブディレクトリから txt ファイルを読み込んで保存する例として、ここに zip フォルダーの例を追加しました。 以下はエラーメッセージです
dirlist = {"test/12.txt", "test/hello.txt", "test/me/", "test/me/testing.txt", "test/test/", "test/test/mytxtfile. TXT"};
IO の問題: "mytxtfile" を ReadWrite モードで開くことができません。
指定されたパスが見つかりません。
Re: ZIP ファイルのサブディレクトリから txt ファイルを読み込んで保存するスクリプトのどこが間違っているかは (まだ) 確認していませんが、txt ファイルを保存するバージョンがあります (For Each() と Filter Each() により JMP16+ が必要です)。
Names Default To Here(1);
file_of_interest = "mytxtfile.txt";
zip_path = "$DOWNLOADS\test.zip";
save_path = "$DOWNLOADS\586819.txt";
za = Open(zip_path, "zip");
members_in_zip = za << dir;
// take only .txt files
file_paths_of_interest = Filter Each({members}, members_in_zip,
Ends With(members, file_of_interest);
);
If(N Items(file_paths_of_interest) == 0,
Throw("Not found");
);
// Assume that only one of those files exist
file_path_of_interest = file_paths_of_interest[1];
data = za << read(file_path_of_interest, Format("string"));
Save Text File(save_path, data);
//Open(save_path);

Re: ZIP ファイルのサブディレクトリから txt ファイルを読み込んで保存するzip ファイルについて知っておくべきこと: 実際には、ネストされた階層ディレクトリ構造はありません。 zip ファイルのディレクトリは、文字列名の単なるリストです。 これらの名前には / または \ 文字が含まれている可能性があり、一部の zip ファイル ビューアーはそれを階層的な入れ子として表現しようとする場合があります。 したがって、名前に含まれる zip ファイル メンバーは、私のテキストファイル名前に / 文字も含まれており、このパスが構築されるとき
save text file(path1 || lst[k] || "_" || dirlist[l] , text);
dirlist には "test/test/mytextfile.txt" が含まれており、連結の結果のパス名はおそらくコンピューターに存在しません。
word() または words() 関数は、パスの部分を分離するのに役立つ場合があります。
ZIP ファイルのサブディレクトリから txt ファイルを読み取って保存するやあ、
誰か助けてくれませんか。 たくさん試しましたが、まだ失敗します。
zip フォルダーのリストをループして、zip フォルダーのサブディレクトリの下にある特定の txt ファイルを見つけようとしました。 zip フォルダー内のファイルリストを取得すると、txt ファイルが subdirector/mytxtfile_123.log として表示されました。 以下は私のスクリプトですが、txt ファイルのダウンロードに失敗します。 「システムが指定されたパスを見つけることができません」という IO の問題があります。 ファイルリストを取得するときに「\」が「/」に反転しているのかな。 ファイルをサブディレクトリまたは zip に取得する巧妙な方法はありますか?
path == path where all zip folder located;
path1 == path where txt file going to save;
lst = {the list of the zip folders};
for (k=1, k <=N items(lst), k++,
Try(
za = open(path||lst[k], zip);
dirlist = za << dir;
for (l=1, l<=N Items(dirlist), l++,
If (Contains(dirlist[l], "mytxtfile_"),
text = za << read(dirlist[l]);
save text file(path1||lst[k]||"_"||dirlist[l],text);
);
)
,
print (lst[k] || "fail to open");
Throw();
);
);品質およびプロセスエンジニアリング