{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## 5-8 Dir" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "C:/Users/chezo/source/kawasakirb/meetups/pruby\n", "C:/Users/chezo\n" ] } ], "source": [ "puts Dir.pwd\n", "puts Dir.home" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Dir.chdir 'C:/temp'" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\"C:/temp\"" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Dir.pwd" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "C:/Users/chezo\n", "C:/Users/chezo\n" ] } ], "source": [ "Dir.chdir(Dir.home) do |path|\n", " puts path\n", " puts Dir.pwd\n", "end" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\"C:/temp\"" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Dir.pwd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5-8-1" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[\".\", \"..\", \"Adobe\", \"aolicsdn.rnw\", \"Apple\", \"Apple Computer\", \"Application Data\", \"Caphyon\", \"chocolatey\", \"Cisco\", \"Conexant\", \"CubeSoft\", \"Docker\", \"Documents\", \"Dolby\", \"Dropbox\", \"EPSON\", \"FLEXnet\", \"Git\", \"Google\", \"Intel\", \"Kairos\", \"Lenovo\", \"Logishrd\", \"Logitech\", \"Microsoft\", \"Microsoft OneDrive\", \"Microsoft.SqlServer.Compact.400.64.bc\", \"MIT\", \"mntemp\", \"Oracle\", \"Package Cache\", \"qevshpkn.ctb\", \"Qlik\", \"regid.1991-06.com.microsoft\", \"Roaming\", \"shimgen\", \"Skype\", \"SoftwareDistribution\", \"Synaptics\", \"Templates\", \"UDL\", \"UIU\", \"USOPrivate\", \"USOShared\", \"Validity\", \"WebEx\", \"WindowsHolographicDevices\", \"Yamaha_Uninstaller\", \"\\x{8358}\\x{835E}\\x{815B}\\x{8367} \\x{8381}\\x{836A}\\x{8385}\\x{815B}\", \"\\x{8366}\\x{8358}\\x{834E}\\x{8367}\\x{8362}\\x{8376}\"]" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Dir.entries(\"C:/ProgramData\")" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[\".\", \"..\", \"Adobe\", \"aolicsdn.rnw\", \"Apple\", \"Apple Computer\", \"Application Data\", \"Caphyon\", \"chocolatey\", \"Cisco\", \"Conexant\", \"CubeSoft\", \"Docker\", \"Documents\", \"Dolby\", \"Dropbox\", \"EPSON\", \"FLEXnet\", \"Git\", \"Google\", \"Intel\", \"Kairos\", \"Lenovo\", \"Logishrd\", \"Logitech\", \"Microsoft\", \"Microsoft OneDrive\", \"Microsoft.SqlServer.Compact.400.64.bc\", \"MIT\", \"mntemp\", \"Oracle\", \"Package Cache\", \"qevshpkn.ctb\", \"Qlik\", \"regid.1991-06.com.microsoft\", \"Roaming\", \"shimgen\", \"Skype\", \"SoftwareDistribution\", \"Synaptics\", \"Templates\", \"UDL\", \"UIU\", \"USOPrivate\", \"USOShared\", \"Validity\", \"WebEx\", \"WindowsHolographicDevices\", \"Yamaha_Uninstaller\", \"\\x{8358}\\x{835E}\\x{815B}\\x{8367} \\x{8381}\\x{836A}\\x{8385}\\x{815B}\", \"\\x{8366}\\x{8358}\\x{834E}\\x{8367}\\x{8362}\\x{8376}\"]\n", "#\n" ] } ], "source": [ "Dir.open 'C:\\ProgramData' do |dir|\n", " puts dir.entries\n", " puts dir\n", "end" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[\"C:/ProgramData/Adobe\", \"C:/ProgramData/aolicsdn.rnw\", \"C:/ProgramData/Apple\", \"C:/ProgramData/Apple Computer\", \"C:/ProgramData/Application Data\"]" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Dir.glob(\"C:/ProgramData/A*\")" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[\"C:/ProgramData/Adobe\", \"C:/ProgramData/aolicsdn.rnw\", \"C:/ProgramData/Apple\", \"C:/ProgramData/Apple Computer\", \"C:/ProgramData/Application Data\"]" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Dir.glob('C:/ProgramData/A*')" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Dir.glob('C:\\ProgramData\\A*')" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Dir.glob(\"C:\\\\ProgramData\\\\A*\")" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[\"C:/ProgramData/Adobe\", \"C:/ProgramData/aolicsdn.rnw\", \"C:/ProgramData/Apple\", \"C:/ProgramData/Apple Computer\", \"C:/ProgramData/Application Data\"]" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Dir['C:/ProgramData/A*']" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[\"desktop.ini\", \"krb5cache\"]" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Dir['*']" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[\"C:/ProgramData/Adobe/AIR\", \"C:/ProgramData/Adobe/AIR/Updater\", \"C:/ProgramData/Adobe/AIR/Updater/initialPingback\", \"C:/ProgramData/Adobe/AIR/Updater/updatePingback\", \"C:/ProgramData/Adobe/ARM\", \"C:/ProgramData/Adobe/ARM/Reader_18.011.20036\", \"C:/ProgramData/Adobe/ARM/Reader_18.011.20038\", \"C:/ProgramData/Adobe/ARM/S\", \"C:/ProgramData/Adobe/ARM/{291AA914-A987-4CE9-BD63-AC0A92D435E5}\", \"C:/ProgramData/Adobe/Setup\", \"C:/ProgramData/Adobe/Setup/{AC76BA86-7AD7-1041-7B44-AC0F074E4100}\", \"C:/ProgramData/Adobe/Setup/{AC76BA86-7AD7-1041-7B44-AC0F074E4100}/abcpy.ini\", \"C:/ProgramData/Adobe/Setup/{AC76BA86-7AD7-1041-7B44-AC0F074E4100}/AcroRdrDCUpd1700920044.msp\", \"C:/ProgramData/Adobe/Setup/{AC76BA86-7AD7-1041-7B44-AC0F074E4100}/AcroRead.msi\", \"C:/ProgramData/Adobe/Setup/{AC76BA86-7AD7-1041-7B44-AC0F074E4100}/Data1.cab\", \"C:/ProgramData/Adobe/Setup/{AC76BA86-7AD7-1041-7B44-AC0F074E4100}/setup.exe\", \"C:/ProgramData/Adobe/Setup/{AC76BA86-7AD7-1041-7B44-AC0F074E4100}/setup.ini\"]" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Dir.glob('C:/ProgramData/Adobe/**/*')" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ ".\n", "String\n", "..\n", "String\n", "Adobe\n", "String\n", "aolicsdn.rnw\n", "String\n", "Apple\n", "String\n", "Apple Computer\n", "String\n", "Application Data\n", "String\n", "Caphyon\n", "String\n", "chocolatey\n", "String\n", "Cisco\n", "String\n", "Conexant\n", "String\n", "CubeSoft\n", "String\n", "Docker\n", "String\n", "Documents\n", "String\n", "Dolby\n", "String\n", "Dropbox\n", "String\n", "EPSON\n", "String\n", "FLEXnet\n", "String\n", "Git\n", "String\n", "Google\n", "String\n", "Intel\n", "String\n", "Kairos\n", "String\n", "Lenovo\n", "String\n", "Logishrd\n", "String\n", "Logitech\n", "String\n", "Microsoft\n", "String\n", "Microsoft OneDrive\n", "String\n", "Microsoft.SqlServer.Compact.400.64.bc\n", "String\n", "MIT\n", "String\n", "mntemp\n", "String\n", "Oracle\n", "String\n", "Package Cache\n", "String\n", "qevshpkn.ctb\n", "String\n", "Qlik\n", "String\n", "regid.1991-06.com.microsoft\n", "String\n", "Roaming\n", "String\n", "shimgen\n", "String\n", "Skype\n", "String\n", "SoftwareDistribution\n", "String\n", "Synaptics\n", "String\n", "Templates\n", "String\n", "UDL\n", "String\n", "UIU\n", "String\n", "USOPrivate\n", "String\n", "USOShared\n", "String\n", "Validity\n", "String\n", "WebEx\n", "String\n", "WindowsHolographicDevices\n", "String\n", "Yamaha_Uninstaller\n", "String\n", "スタート メニュー\n", "String\n", "デスクトップ\n", "String\n" ] }, { "data": { "text/plain": [ "#" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dir = Dir.open(\"C:/ProgramData\")\n", "\n", "dir.each do |file|\n", " puts file\n", " p file.class\n", "end" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "#" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dir" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "#" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dir.rewind" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dir.pos" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\".\"" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dir.read" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dir.pos" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "#" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dir" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dir.pos = 0" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": true }, "outputs": [], "source": [ "dir.close" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5-8-3 ディレクトリの操作" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Dir.mkdir 'foo', 0755" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "File.rename 'foo', 'bar'" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Dir.rmdir 'bar'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5-8-3 ディレクトリの状態を確認する" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "false\n", "true\n" ] } ], "source": [ "dir = 'foo'\n", "puts Dir.exist?(dir)\n", "Dir.mkdir(dir)\n", "puts Dir.exist?(dir)" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "true\n" ] } ], "source": [ "puts Dir.empty?(dir)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "次回、\"5-9 Thread\"から" ] } ], "metadata": { "kernelspec": { "display_name": "Ruby 2.4.1", "language": "ruby", "name": "ruby" }, "language_info": { "file_extension": ".rb", "mimetype": "application/x-ruby", "name": "ruby", "version": "2.4.1" } }, "nbformat": 4, "nbformat_minor": 2 }