問題タブ [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.
ruby - rubyzipでzipフォルダを解凍する方法
rubyzip を使用して通常の zip ファイルの内容を取得する方法を知っています。しかし、圧縮されたフォルダーの内容を解凍するのに問題がありました。どなたか助けていただければ幸いです。
これは私が解凍するために使用するコードです:
entry.name は、zip ファイル内のファイルの名前を教えてくれます。これは、通常の zip ファイルで完全に機能します。ただし、フォルダーから zip ファイルを作成すると、エントリの名前は test-folder/test.pdf のようになります。その後、ファイルを作成しようとすると、ファイルが見つからないことがわかります。これはおそらく、zip 内にある "test" フォルダー内にあるためです。
エントリがフォルダであることを確認すると、フォルダが見つかりません。したがって、解決策は、エントリをストリームとして読み取り、ファイルとして保存することだと思いました。エントリ ストリームを取得するのは簡単ですが、ファイルとして保存するにはどうすればよいですか? これは私がこれまでに得たものです。
基本的に私の質問は、ストリームからファイルを作成するにはどうすればよいですか? それとも、私よりも簡単なアプローチがありますか?
===編集=== 私はクリップを使ってファイルを保存しています。
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で読めるようにプログラムでコンテンツを圧縮するための解決策は何だろうと思っています。
圧縮するための私のコード:
ruby - rubyzip ファイルの順序
ディレクトリのアーカイブを作成しています。各ファイルには、001 から 049 までの 3 桁の名前が付いています。私のコードは次のとおりです。
ファイルを追加するときputs
、数値の昇順で追加されることを確認しました。しかし、 で解凍しようとするとzip
、ランダムな順序で解凍されていることがわかりました (例: 045、002、...)。
番号順に解凍するにはどうすればよいですか?
編集: 生成された zip ファイルを 16 進エディターで見ると、イメージが適切な順序で追加されていないことがわかりますがunzip
、中央ディレクトリに存在する順序で抽出されていることがわかります (zip ファイルの最後のブロック)。
ruby-on-rails - ziprubyまたはrubyzip?
ここにrubyonrailsサイト(rails 2.0.2、ruby 1.8.6)があり、rubyzipとziprubyの両方がインストールされていますが、File.existsで競合しますか?メソッドなので、1つ削除したいと思います。今後の最高のzipAPIに関する一般的なコンセンサスは何ですか?
お互いに大きな利点はありますか?
ruby - RVMを搭載したOSXLionにRubyZipgemをインストールできません
TL; DR:
そして今、詳細に。どの情報が関連しているかわからないので、すべてを言うつもりです。
- 最近、OS X Snow LeopardからLionにアップグレードしました(Xcodeも4.2にアップグレードしました)
- しばらくの間、すべてが正常に機能しました
- 今日、私はいくつかのgem(RSpec、Cucumber)をインストールすることに決め、RubyGemsで何かをするたびに、日付形式の警告を受け取り始めました。
- RubyGemsを1.3.6(ここではわかりません)から現在の1.8.11に更新することにしました。
- 警告がポップアップし続けたので、私はgemsetを削除しようとしましたが
rvm gemset empty
、これもいくつかの許可拒否エラーのために失敗しました(はい、私はそれを書き留めていませんでした) - その結果、とを介してRubyを再インストールしました(その後も忘れませんでした。
rvm remove 1.9.2
rvm install 1.9.2
rvm use 1.9.2 --default
バンドラーをインストールしてからRails3.1.1プロジェクトにインストール
/li>gem install bundle
しようとしbundle install
ましたが、エラーで終了しますgem install rubyzip -v '0.9.4'
上記のエラーが発生しますREADMEファイルには、ソースをダウンロードしてそこからを介してインストールするように指示されていますが
/li>ruby install.rb
、これもエラーで終了しますrubyzipからテストを実行しても、多くのエラーが発生します
/li>アイデアが足りないのですが、どうすればよいですか?
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 ライブラリがリモート ファイルの圧縮を処理するかどうかを知っている人はいますか? または、より良い/より簡単な方法はありますか?
ありがとう!
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とは異なるクラスを使用する必要がありますか?
また、圧縮しているファイルはローカルファイルシステムにはありませんが、クラウドサービスに保存されています。
ruby-on-rails-3.1 - rubyzip を使用して zip ファイル内のファイルとディレクトリの名前を変更する方法
zip 内のファイルとディレクトリの名前を変更しようとしています。私は3つの異なるものを試しましたが、すべてうまくいきませんでした。それを行うための正しいコマンドは何ですか?
以下は私のコードの抜粋です:
試用コマンドの名前を変更せずに実行すると、この出力が得られるため、zip にファイルが存在することがわかります。これは File クラスではなく、Zip::ZipEntry クラスであり、新しい名前を解析できます。
最初の試行 (コメントなし) で、次のエラーが発生します。
2回目の試行(コメントなし)で、次のエラーが発生します:
3 回目の試行 (コメントなし) で、次のエラーが発生します。
ruby - ファイル名の rubyzip および unicode 文字
rubyzip
gem とclass を使用してzip アーカイブを作成しZip::ZipOutputStream
ていますが、Unicode 文字 (キリル文字) に問題があります。アーカイブでは、????? ???? ??.doc
. rubyzip は Unicode をサポートしていますか?