SketchUp用のプラグインを書いています。My Documents
Windowsのディレクトリからテキストファイルを追加する簡単な方法が見つかりません。私が抱えている問題は次のとおりです。
- 現在のユーザー名で開く
- Windowsバージョン間の違い。
My Documents
32ビットマシンのWindows7で追加モードでファイルを開くためのコードが必要です。
Ruby でバッククォート ` を使用して、システムに対してコマンド ラインを実行できます。その後、呼び出しの結果が返されます。
Ruby-Doc.orgの公式説明は次のとおりです。
サブシェルで実行中の cmd の標準出力を返します。組み込み構文 %x{...} はこのメソッドを使用します。$? を設定します。プロセスの状態に。
`echo` #=> 'ECHO is on.' if ran on Windows
Windows には、ユーザー名などの情報を収集するために使用できる特別な変数があります。
echo %username%
したがって、これら 2 つを使用して、ユーザーの My Documents フォルダーの場所を収集できます (Windows 上にある場合)。
# Tested on Windows XP and 7
my_documents = File.join(`echo %userprofile%`.chomp, "My Documents")
注:
Ruby には、システム コールを行うメソッドもありますsystem
。ただし、これはブール値を返しますが、これはあなたの場合には機能しません。
また、このソリューションはWindowsでのみ機能することにも注意してください。
file = File.open(ENV['userprofile'] + "\\My Documents\\file.txt", "a")
file.puts "text to append"
file.close
編集:
ユーザーのドキュメントのデフォルトの場所は次のとおりです。
Windows 98 および Windows Me の場合
C:\My Documents
Windows 2000 および Windows XP の場合
%USERPROFILE%\My Documents
Windows Vista 以降の場合
%USERPROFILE%\Documents
Windows XP以前の英語以外のバージョンでは、その言語に適したディレクトリ名が使用されます。
Windows レジストリで、英語以外のシステムの正しいパスを見つけることができます。
require 'win32/registry'
reg_path = 'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders'
reg = Win32::Registry::HKEY_CURRENT_USER.open( reg_path )
right_path = reg['Personal'] # => C:\Documents and Settings\addo\Dokumenty