問題タブ [rubyzip]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
7565 参照

ruby - rubyzipでzipフォルダを解凍する方法

rubyzip を使用して通常の zip ファイルの内容を取得する方法を知っています。しかし、圧縮されたフォルダーの内容を解凍するのに問題がありました。どなたか助けていただければ幸いです。

これは私が解凍するために使用するコードです:

entry.name は、zip ファイル内のファイルの名前を教えてくれます。これは、通常の zip ファイルで完全に機能します。ただし、フォルダーから zip ファイルを作成すると、エントリの名前は test-folder/test.pdf のようになります。その後、ファイルを作成しようとすると、ファイルが見つからないことがわかります。これはおそらく、zip 内にある "test" フォルダー内にあるためです。

エントリがフォルダであることを確認すると、フォルダが見つかりません。したがって、解決策は、エントリをストリームとして読み取り、ファイルとして保存することだと思いました。エントリ ストリームを取得するのは簡単ですが、ファイルとして保存するにはどうすればよいですか? これは私がこれまでに得たものです。

基本的に私の質問は、ストリームからファイルを作成するにはどうすればよいですか? それとも、私よりも簡単なアプローチがありますか?

===編集=== 私はクリップを使ってファイルを保存しています。

0 投票する
1 に答える
2150 参照

ruby - rubyzip で圧縮された xlsx が Excel で読めない

Excel xlsx ファイルを読み書きできるコードの作成に取り組んでいます。xlsx ファイルは単にいくつかの xml ファイルの zip アーカイブであるため、ファイルを書き込めるかどうかをテストするために、呼ばれる gem を使用しrubyzipて xlsx ファイルを解凍し、データを変更せずにすぐに新しいアーカイブに圧縮しました。 . ただし、これを行うと、新しいExcelファイルを開くことができません。破損していると言われています。

または、Mac OS X のアーカイブ ユーティリティ (zip ファイルを処理するためのネイティブ アプリケーション) を使用して、Excel ファイルを解凍して再圧縮すると、データは破損せず、結果のファイルを Excel で開くことができます。

rubyzipデータを「破損」させるのは「解凍」機能ではなく、zip プロセスであることがわかりました。(実際、rubyzip作成された新しい zip ファイルに対して Archive Utility を使用すると、ファイルは再び Excel で読み取れるようになります)。

なぜこれが起こるのか、そしてExcelで読めるようにプログラムでコンテンツを圧縮するための解決策は何だろうと思っています。

圧縮するための私のコード:

0 投票する
1 に答える
552 参照

ruby - rubyzip ファイルの順序

ディレクトリのアーカイブを作成しています。各ファイルには、001 から 049 までの 3 桁の名前が付いています。私のコードは次のとおりです。

ファイルを追加するときputs、数値の昇順で追加されることを確認しました。しかし、 で解凍しようとするとzip、ランダムな順序で解凍されていることがわかりました (例: 045、002、...)。

番号順に解凍するにはどうすればよいですか?

編集: 生成された zip ファイルを 16 進エディターで見ると、イメージが適切な順序で追加されていないことがわかりますがunzip、中央ディレクトリに存在する順序で抽出されていることがわかります (zip ファイルの最後のブロック)。

0 投票する
6 に答える
6477 参照

ruby-on-rails - ziprubyまたはrubyzip?

ここにrubyonrailsサイト(rails 2.0.2、ruby 1.8.6)があり、rubyzipとziprubyの両方がインストールされていますが、File.existsで競合しますか?メソッドなので、1つ削除したいと思います。今後の最高のzipAPIに関する一般的なコンセンサスは何ですか?

お互いに大きな利点はありますか?

0 投票する
1 に答える
1248 参照

ruby - RVMを搭載したOSXLionにRubyZipgemをインストールできません

TL; DR


そして今、詳細に。どの情報が関連しているかわからないので、すべてを言うつもりです。

  1. 最近、OS X Snow LeopardからLionにアップグレードしました(Xcodeも4.2にアップグレードしました)
  2. しばらくの間、すべてが正常に機能しました
  3. 今日、私はいくつかのgem(RSpec、Cucumber)をインストールすることに決め、RubyGemsで何かをするたびに、日付形式の警告を受け取り始めました。
  4. RubyGemsを1.3.6(ここではわかりません)から現在の1.8.11に更新することにしました。
  5. 警告がポップアップし続けたので、私はgemsetを削除しようとしましたrvm gemset empty、これもいくつかの許可拒否エラーのために失敗しました(はい、私はそれを書き留めていませんでした)
  6. その結果、とを介してRubyを再インストールしました(その後も忘れませんでした。rvm remove 1.9.2rvm install 1.9.2rvm use 1.9.2 --default
  7. バンドラーをインストールしてからRails3.1.1プロジェクトにインストールgem install bundleしようとしbundle installましたが、エラーで終了します

    /li>
  8. gem install rubyzip -v '0.9.4'上記のエラーが発生します

  9. READMEファイルには、ソースをダウンロードしてそこからを介してインストールするように指示されていますがruby install.rb、これもエラーで終了します

    /li>
  10. rubyzipからテストを実行しても、多くのエラーが発生します

    /li>
  11. アイデアが足りないのですが、どうすればよいですか?

0 投票する
2 に答える
1566 参照

ruby-on-rails - RubyZipを使用してZipにリモートファイルを保存するRuby

Image というモデルがあります。画像には、S3 に保存されている Dragonfly を使用して添付されたファイルがあります。

すべての画像を圧縮する必要があるという要件があります。

私は使用しています:

私が直面している問題は、これimage_pathがローカルの場合に機能することです。ファイルのために S3 を呼び出す必要がある場合は、 http://example.s3.amazonaws.com/foo/image.jpgimage_pathなどのリモート パスであり、それを処理する RubyZip メソッドはないと思いますそれ。

リモートパスから一時ファイルを作成し、その一時ファイルをzipに追加してから一時ファイルを削除するものを書くことについて議論しています。

しかし、それを行う前に、RubyZip やその他の zip ライブラリがリモート ファイルの圧縮を処理するかどうかを知っている人はいますか? または、より良い/より簡単な方法はありますか?

ありがとう!

0 投票する
1 に答える
1796 参照

ruby - ZipOutputStreamを使用したZipファイルのサブディレクトリ

ここで説明する手法を使用してzipファイルを作成しています。

http://info.michael-simons.eu/2008/01/21/using-rubyzip-to-create-zip-files-on-the-fly/

クライアントから、このzipファイルにサブディレクトリを含めるように求められました。ZipOutputStreamのドキュメントを検索しましたが、ディレクトリを含める方法がわかりません。ZipOutputStreamでこれを行う方法はありますか?ZipOutputStreamとは異なるクラスを使用する必要がありますか?

また、圧縮しているファイルはローカルファイルシステムにはありませんが、クラウドサービスに保存されています。

0 投票する
2 に答える
1807 参照

ruby-on-rails-3.1 - rubyzip を使用して zip ファイル内のファイルとディレクトリの名前を変更する方法

zip 内のファイルとディレクトリの名前を変更しようとしています。私は3つの異なるものを試しましたが、すべてうまくいきませんでした。それを行うための正しいコマンドは何ですか?

以下は私のコードの抜粋です:

試用コマンドの名前を変更せずに実行すると、この出力が得られるため、zip にファイルが存在することがわかります。これは File クラスではなく、Zip::ZipEntry クラスであり、新しい名前を解析できます。

最初の試行 (コメントなし) で、次のエラーが発生します。

2回目の試行(コメントなし)で、次のエラーが発生します:

3 回目の試行 (コメントなし) で、次のエラーが発生します。

0 投票する
3 に答える
906 参照

ruby - ファイル名の ruby​​zip および unicode 文字

rubyzipgem とclass を使用してzip アーカイブを作成しZip::ZipOutputStreamていますが、Unicode 文字 (キリル文字) に問題があります。アーカイブでは、????? ???? ??.doc. rubyzip は Unicode をサポートしていますか?