ファイルとコレクションの管理 (Managing Files and Your Collection)

Last-modified: 2016-12-23 (金) 08:25:02

原文 = http://ankisrs.net/docs/manual.html#managing-files-and-your-collection


目次



コレクションのチェック

コレクションのファイルに問題がないかをときどきチェックするのは良い考えです。メニューから Tools>Check Database を選択することでこれを実行することができます。データベースのチェックはファイルが破損していないことを保証し、内部構造の一部を再構築してファイルを最適化します。

データベースをチェックすると、タグのリストも再構築されます。単語帳やカードを削除した場合、効率を良くするため、使用されていたタグのリストは更新されません。もう使われていない古いタグをリストから削除したい場合は、上記の方法でデータベースをチェックしてください。

Anki は 2週間に1回、自動的にコレクションの最適化を行います。この最適化によりコレクションがうまく動作することを保証しますが、エラーのチェックや、タグのリストの再構築は行われません。

ファイルの場所

Windows と OS X では、Anki は Documents フォルダーの中の Anki フォルダーに全てのファイルを保存します。他の OS では、デフォルトで ~/Anki に保存されます。

Anki フォルダー中、プログラムレベルの設定とプロファイルレベルの設定は prefs.db というファイルに保存されます。

それぞれのプロファイルは別々のフォルダーに保存されます。フォルダーには次が含まれます:

  • collection.anki2 というファイルにノート、単語帳、カード
  • collection.media というフォルダーに音声と画像
  • バックアップフォルダー
  • いくつかのシステムファイル

警告

Anki の起動中に決してコレクションのコピーや移動をしないでください。コレクションが破損する可能性があります。他のファイルも移動や編集をしないでください。

ノート

Unix システムでのデータ保存には、あえて隠しフォルダーではなく ~/Documents/Anki というフォルダーを使用しています。このフォルダーに保存されたデータは簡単に復旧できる設定ではなく、重要なユーザーのデータであり、ファイルのバックアップ時にユーザーがこのフォルダを見落としたら大きな損失となります。また隠しフォルダーをよく知らない Linux ユーザーが増えています。あなたが高度なユーザーであれば、次の項目で説明するようにコマンドライン引数でカスタムフォルダーを指定することもできます。

起動時オプション

あるコンピュータ上で破壊的な変更をしてしまい、別のコンピュータ上には破損していないコピーがある場合、破壊的な変更をダウンロードすることなく Anki を起動させて、完全同期オプションで復旧させたい場合があるでしょう。同様に Anki に何か問題が起きている場合、一時的にアドオンを無効化してそのアドオンが問題を発生させていないかを確認したい場合があるでしょう。Anki の起動時にシフトキーを押し続けることで、これらの両方を行うことができます。

起動時にカスタムフォルダーの場所を指定することもできます。これは主にポータブルインストールで使うことを意図した高度な機能であり、ほとんどの場合ではデフォルトの場所を使うことをお勧めします。

別のフォルダーを指定する構文は次のようになります:

anki -b /path/to/anki/folder
  • 複数のプロファイルがある場合、-p <name> を渡して特定のプロファイルを読み込むことができます。
  • インターフェイスの言語を変更するには、-l <iso 639-1 language code> (例:日本語では "-l ja")を使用してください。

カスタムフォルダーの場所を常に指定したい場合、Anki へのショートカットを修正することができます。Windows では、ショートカットを右クリックし、プロパティを開き、ショートカットタブを選択して "-b \path\to\data\folder" をプログラムへのパスの後ろに追加してください。例えば次のようです:

"C:\Program Files\Anki\anki.exe" -b "C:\AnkiDataFolder"

"-l" オプションを使うことで、Anki を使用する際の言語を簡単に変更することができます。

ノート

ウィンドウズでは スラッシュ (/) ではなく バックスラッシュ (\) を使ってください。

Mac では Anki アイコンをクリックしたときの動作を変える簡単な方法はありませんが、terminal からカスタムのフォルダーを使って Anki を起動することができます:

open /Applications/Anki.app --args -b ~/myankifolder

ノート

インターフェイス言語を恒久的に変更したければ、Documents/Anki/prefs.db を削除すると最初のスタートアップ画面が再度表示されます。その後、使っていたプロファイルを全て追加する必要があります。前回と同じプロファイル名を使う限り、以前のファイルが自動的に使用されます。

DropBoxとファイルの同期

Anki フォルダーをサードパーティの同期サービスで直接同期することはおすすめしません。使用中にファイルの同期が行われると、データベースの破損が起きる可能性があるためです。

メディアだけを同期したければ、外部フォルダーを DropBox のようなサービスへリンクしてください。詳細は http://www.dropboxwiki.com/tips-and-tricks/sync-other-folders を参照してください。

コレクションも同様に同期したければ、スクリプトを作成することを強くおすすめします。スクリプトの内容は、ファイルを同期フォルダーからローカルフォルダーへコピーし、Anki を起動し、Anki の終了時にファイルを同期フォルダーへコピーし直すものです。これによりファイルが開かれている間にファイルが同期されないことを確実にすることができます。

ネットワークファイルシステム

Anki のファイルはローカルのハードディスクに保存することを強く勧めます。ネットワークファイルシステムはデータベースの破損を引き起こす可能性があります。ネットワークファイルシステムしか選択肢がなければ、Tools>Check Database 使って日頃から破損チェックをすることをお勧めします。

フラッシュドライブからの起動

Anki はUSB/フラッシュドライブにインストールし、ポータブルアプリケーションとして使うことができます。

  • \Program Files\Anki フォルダーをフラッシュドライブにコピーし、G:\Anki などとします。
  • 次の内容をもつ G:\anki.bat というテキストファイルを作成します。
anki\anki.exe -b \ankidata

黒いコマンドプロンプトウィンドウが表示され続けるのを止めたければ、代わりにこちらを使ってください:

start /b anki\anki.exe -b \ankidata
  • anki.bat をダブルクリックすることで、Anki が G:\ankidata をユーザーデータフォルダーとして起動します。

ノート

AnkiWeb とのメディアの同期は、フラッシュドライブが FAT32 でフォーマットされている場合には動作しません。メディアの同期が正しく行われるようにするには、ドライブを NTFS としてフォーマットしてください。

バックアップ

コレクションが閉じられるたび(Anki の終了時、プロファイルの切替え時、単語帳の同期時)に、コレクションがバックアップフォルダーに出力されます。デフォルトでは30個までのバックアップを保存します。この数は 設定 から設定することができます。

自動バックアップでは、ディスクやコンピュータ自体の損傷からは保護されません。またメディアもバックアップされません。コレクションを安全に保つには、手動でのバックアップを作成することも考えてください。

手動でバックアップするもっとも簡単な方法は、Anki フォルダーの全体をバックアップすることです。Anki の起動中のバックアップは破損を生じるため、Anki を閉じていることを確認してください。

バックアップから復元するには、Anki を閉じ、Documents/Anki/<profile name>/backups フォルダを開き、最も最近のバックアップをクリックしてインポートするだけです。これによりコレクション全体がバックアップで上書きされます。バックアップの一部(例えば、破損させた単語帳)のみをインポートしたい場合は、新しい プロファイル を作成してバックアップファイルをそれにインポートしてください。そして復元したい単語帳をエクスポートし、元のプロファイルでインポートしてください。

バックアップから復元するには:

  1. First create a copy of your backups folder, as each time you close Anki it deletes the oldest backup, and if you're trying different backup files you could accidentally end up deleting the backup you need. To do this, locate your Documents/Anki/User 1/backups folder, and copy the entire folder somewhere safe, like your desktop.
  2. Open Anki and the profile you want to restore. If your profile is corrupt and won't open, you can rename your Documents/Anki/User 1/collection.anki2 file to something else to tell Anki to recreate an empty collection when you next open the profile.
  3. With the profile open, use File>Import and import a backup from the copy of the backups folder you created on your desktop. In the file selection dialog, you can set it to detail mode using one of the icons so that the modification date is shown on each file - that will give you an idea of which backup you need.
  4. If the backup you imported was not old enough, try an older one until you locate an appropriate one.

Anki では、削除されたノートがプロファイルフォルダの "deleted.txt" というテキストファイルに記録されています。このノートは File→Import から読み込めるテキスト形式になっていますが、インポート機能は一度に一つのノートタイプの読み込みしかサポートしていません。よって異なるノートタイプのノートを削除した場合は、読み込む前にノートタイプごとに異なるファイルに分割する必要があります。

アクセスできないハードディスク

Anki が Ankiフォルダー にファイルを書き込めない場合、起動時にファイルが書き込めない旨のメッセージが表示され、その後 終了します。アクセス権限をどのように直せばよいのかわからない場合、身の回りのコンピュータに詳しい人に手助けをしてもらってください。

Tempフォルダーのアクセス権限

Anki はシステムのテンポラリーフォルダーに一時データを保存します。ローグウェア(セキュリティソフトを装ったマルウェア)やバグ的なアンチウイルスアプリによってこのフォルダーのアクセス権限がデフォルト設定から変更されていると、Anki は正しく動作しません。

Windows 7 マシンを使っている場合、以下がこの問題を修正するための一般的な手順になります。複雑なため、よくわからなければ Windows に詳しい人に聞いてください。

  1. スタートバーをクリックし、%temp% をパーセントを含めて入力し、エンターを押してください。
  2. 上のフォルダーをへいき、Tempフォルダーを右クリックしてプロパティを選択してください。
  3. セキュリティタブで、詳細設定 (Advanced) をクリックしてください。
  4. 所有者タブをクリックし、自分が所有者としてリストされていない場合、ボタンを押して所有権を取得してください。
  5. アクセス許可 (permission) タブでフルコントロール権限があることを確認してください。Windows 7 のインストール時のデフォルトでは、コントロール権限は c:\users\your-username から継承されます。

コレクションの破損

Anki ではプログラムやコンピュータのクラッシュに対して堅牢性の高いファイルフォーマットを使用していますが、Anki が開いている際にファイルが編集されたり、ネットワークドライブに保存されていたり、ときにはバグにより、コレクションが破損することがあります。

Tools>Check Database を使用すると、ファイルが破損していた場合にはメッセージが表示されます。修復する最善の方法は、最も最近の自動バックアップから修復することです。しかしバックアップが古すぎる場合には、破損を修復することができます。

Linux では、 sqlite3 がインストールされていることを確認してください。Mac では、すでにインストールされているはずです。Windows では、http://www.sqlite.org/sqlite-3_6_23.zip をダウンロードしてください。

次に、修復に失敗した場合などのため、collection.anki2 ファイルのバックアップを作成してください。

Linux/OSX

ターミナルを開き、コレクションのあるフォルダへ移動し、次を入力してください:

sqlite3 collection.anki2 .dump > dump.txt

出力された dump.txt ファイルをテキストエディタで開き、最後の行を見てください。"rollback" となっていたら、それを "commit" に変更してください。

次をターミナルで走らせてください:

cat dump.txt | sqlite3 temp.file

処理するファイルが temp.file であることを確認してください。右のファイル名を collection.anki2 にしたり、ファイルを空にしないでください。終了したら、最後のステップに進んでください。

Windows

プログラム sqlite3.exe と単語帳をデスクトップにコピーしてください。スタート→ファイル名を指定して実行 (Start→Run) から cmd.exe を実行してください。

最近の Windows を使用している場合、コマンドプロンプトのカレントディレクトリがデスクトップとなっていない場合があります。コマンドプロンプトにデスクトップフォルダが表示されていない場合、次を入力してください:

cd C:\Users\Administrator\Desktop

そして次を実行してください:

sqlite3 collection.anki2 .dump > dump.txt

出力された dump.txt ファイルをテキストエディタで開き、最後の行を見てください。"rollback" となっていたら、それを "commit" に変更してください。

次をターミナルで走らせてください:

type dump.txt | sqlite3 temp.file

処理するファイルが temp.file であることを確認してください。右のファイル名を collection.anki2 にしたり、ファイルを空にしないでください。終了したら、最後のステップに進んでください。

最後のステップ

エラーメッセージが表示されておらず、temp.file が空でないことを確認してください。処理中にはコレクションの最適化がされるため、新しいファイルは古いものよりもいくらかサイズが小さいことが普通です。

ファイルが空でないことを確認したら、元のファイルのバックアップがあることを確かめた上で、collection.anki2 へ上書きコピーします。そして Anki を起動し、Tools>Check Database を実行してコレクションが正しく復元されたかを確かめてください。