プãƒã‚°ãƒ©ãƒ 言語 ファイル処ç†
目次
ファイル・ディレクトリæ“作
ディレクトリ作æˆ
Directory.CreateDirectory(path: @"D:\a\a\a\a\a");
多階層ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãŒä¸€æ°—ã«ä½œæˆã•れる。
ãŸã ã—ã©ã“ã‹ã«é‡è¤‡ã™ã‚‹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãŒã‚ã‚‹ã¨ä¾‹å¤–ãŒç™ºç”Ÿã™ã‚‹ã€‚
ディレクトリ移動(コピーã¯ã§ããªã„)
Directory.Move(sourceDirName: @"D:\Folder1", destDirName: @"D:\Folder2");
ディレクトリ削除
Directory.Delete(path: @"D:\Folder");
ファイル作æˆ
StreamWriter sr = new StreamWriter(path: @"D:\Folder1\New.txt", append: false);
sr.WriteLine(value: "aaa");
sr.Close();
ファイル移動
File.Move(sourceFileName: @"D:\Folder1\New.txt", destFileName: @"D:\Folder2\New.txt");
åå‰å¤‰æ›´
File.Move(sourceFileName: "C:\Before.txt", destFileName: "C:\After.txt");
※C:\Before.txt ã¯ç„¡ããªã‚‹ã€‚
ファイルコピー
File.Copy(sourceFileName: @"D:\Folder2\New.txt", destFileName: @"D:\Folder1\New1.txt");
ファイル削除
File.Delete(path: @"D:\Folder2\New.txt");
‘ディレクトリ作æˆ
Directory.CreateDirectory(path:="D:\Folder1")
‘ディレクトリ移動(コピーã¯ã§ããªã„)
Directory.Move(sourceDirName:="D:\Folder3", destDirName:="D:\Folder2")
‘ディレクトリ削除
Directory.Delete(path:="D:\Folder3")
‘ファイル作æˆ
Dim sr As New StreamWriter(path:="D:\Folder1\New.txt", append:=False)
sr.WriteLine(value:="aaa")
sr.Close()
‘ファイル移動
File.Move(sourceFileName:="D:\Folder1\New.txt", destFileName:="D:\Folder2\New.txt")
‘ファイルコピー
File.Copy(sourceFileName:="D:\Folder2\New.txt", destFileName:="D:\Folder1\New1.txt")
‘ファイル削除
File.Delete(path:="D:\Folder2\New.txt")
‘ディレクトリå˜åœ¨ç¢ºèª
If Directory.Exists(path:="D:\Folder") = False Then
  MessageBox.Show(text:="フォルダãŒã‚りã¾ã›ã‚“。")
End If
‘ファイルå˜åœ¨ç¢ºèª
If File.Exists(path:="D:\Folder\New.txt") = False Then
  MessageBox.Show(text:="ファイルãŒã‚りã¾ã›ã‚“。")
End If
‘指定ディレクトリ直下ã®ãƒ•ァイル一覧をå–å¾—
Dim filenm() As String = Directory.GetFiles(path:="D:\Folder1", searchPattern:="*", searchOption:=SearchOption.AllDirectories)
⇒filenm(0) : D:\Folder1\New1.txt
⇒filenm(1) : D:\Folder1\New2.txt
'ファイルコピー(上書ãç¦æ¢)
cFso.CopyFile("C:\sample1.txt", "C:\sample2.txt", False)
'ファイルコピー(上書ã許å¯)
cFso.CopyFile("C:\sample1.txt", "C:\sample2.txt", True)
'削除(ファイルOPENä¸ã ã¨ã‚¨ãƒ©ãƒ¼)
Call myFso.DeleteFile("C:\Test.txt")
'移動
Call myFso.MoveFile( (移動å‰ãƒ‘ス) & (ファイルå), (移動後パス) & (ファイルå)
'リãƒãƒ¼ãƒ
Call myFso.MoveFile( (パス) & (変更å‰ãƒ•ァイルå), (パス) & (変更後ファイルå)
※(変更å‰ãƒ•ァイルå)ã¯æ¶ˆãˆã‚‹ã€‚
$p = fopen('test.csv', 'r');
OPENモード
r
èªã¿è¾¼ã¿ã®ã¿å¯ã€‚
ファイルãƒã‚¤ãƒ³ã‚¿ã¯ãƒ•ァイルã®å…ˆé ã«ã€‚
r+
èªã¿æ›¸ãå¯ã€‚
ファイルãƒã‚¤ãƒ³ã‚¿ã¯ãƒ•ァイルã®å…ˆé ã«ã€‚
w
書ãè¾¼ã¿ã®ã¿å¯ã€‚
ファイルãƒã‚¤ãƒ³ã‚¿ã¯ãƒ•ァイルã®å…ˆé ã«ã€‚
ファイルサイズをゼãƒã«ã€‚
ファイルãŒå˜åœ¨ã—ãªã„å ´åˆã¯æ–°è¦ä½œæˆã€‚
w+
èªã¿æ›¸ãå¯ã€‚
ファイルãƒã‚¤ãƒ³ã‚¿ã¯ãƒ•ァイルã®å…ˆé ã«ã€‚
ファイルサイズをゼãƒã«ã€‚
ファイルãŒå˜åœ¨ã—ãªã„å ´åˆã¯æ–°è¦ä½œæˆã€‚
a
è¿½åŠ æ›¸ãè¾¼ã¿å¯ã€‚
ファイルãƒã‚¤ãƒ³ã‚¿ã‚’ファイルã®çµ‚端ã«ã€‚
ファイルãŒå˜åœ¨ã—ãªã„å ´åˆã¯æ–°è¦ä½œæˆã€‚
a+
è¿½åŠ æ›¸ãè¾¼ã¿ãƒ»èªã¿å–りãŒå¯ã€‚
ファイルãƒã‚¤ãƒ³ã‚¿ã‚’ファイルã®çµ‚端ã«ã€‚
ファイルãŒå˜åœ¨ã—ãªã„å ´åˆã¯æ–°è¦ä½œæˆã€‚
x
書ãè¾¼ã¿ã®ã¿å¯ã€‚
ファイルãƒã‚¤ãƒ³ã‚¿ã¯ãƒ•ァイルã®å…ˆé ã«ã€‚
ファイルãŒå˜åœ¨ã™ã‚‹ã¨fopen関数ã¯å¤±æ•—ã—ã€E_WARNINGレベルã®ã‚¨ãƒ©ãƒ¼ã‚’出力。
ファイルãŒå˜åœ¨ã—ãªã„å ´åˆã¯æ–°è¦ä½œæˆã€‚
x+
èªã¿è¾¼ã¿ãƒ»æ›¸ãè¾¼ã¿å¯ã€‚
ファイルãƒã‚¤ãƒ³ã‚¿ã¯ãƒ•ァイルã®å…ˆé ã«ã€‚
ファイルãŒå˜åœ¨ã™ã‚‹ã¨fopen関数ã¯å¤±æ•—ã—ã€E_WARNINGレベルã®ã‚¨ãƒ©ãƒ¼ã‚’出力。
ファイルãŒå˜åœ¨ã—ãªã„å ´åˆã¯æ–°è¦ä½œæˆã€‚
ファイルãƒã‚¤ãƒ³ã‚¿ã‚’é–‰ã˜ã‚‹
fclose()
ファイルã‹ã‚‰ï¼‘行å–å¾—
fgets()
ファイルをãƒã‚¤ãƒŠãƒªãƒ»ãƒ¢ãƒ¼ãƒ‰ã§èªã¿è¾¼ã‚€
fread()
ファイルをãƒã‚¤ãƒŠãƒªãƒ»ãƒ¢ãƒ¼ãƒ‰ã§æ›¸ã込む
fwrite()
インターãƒãƒƒãƒˆã‚‚ã—ãã¯UNIXドメインã®ã‚½ã‚±ãƒƒãƒˆæŽ¥ç¶šã‚’é–‹å§‹
fsockopen()
ファイルã®å†…容を全ã¦å–å¾—ã€é…åˆ—ã«æ ¼ç´
file()
ファイルã€ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚„シンボリックリンクãŒå˜åœ¨ã™ã‚‹ã‹èª¿ã¹ã‚‹
if (!file_exists("C:\test.txt")){
  echo “ファイルãŒã‚りã¾ã›ã‚“。”;
}
ファイルãŒèªã¿è¾¼ã¿å¯èƒ½ã‹ã©ã†ã‹èª¿ã¹ã‚‹
is_readable()
CSVファイルã‹ã‚‰1行å–å¾—ã€é…åˆ—ã«æ ¼ç´
fgetcsv()
$handle = fopen( "c:\test.csv", "r" );
while ($array = fgetcsv( $handle )) {
 var_dump( $array );
}
å®Ÿè¡Œçµæžœ
array(3) {
 [0]=>
 string(3) "aaa"
 [1]=>
 string(3) "bbb"
 [2]=>
 string(3) "ccc"
}
array(3) {
 [0]=>
 string(3) "ddd"
 [1]=>
 string(3) "eee"
 [2]=>
 string(3) "fff"
}
カレントディレクトリ
path = os.getcwd()
C:\test\~
カレントディレクトリ変更
os.chdir('..\\')
os.chdir('.\\test')
os.chdir('C:\\test\\test')
ディレクトリ作æˆ
os.makedir('C:\\test')
os.makedir('.\\test')
æ—¢ã«ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãŒã‚ã‚‹å ´åˆã¯ã‚¨ãƒ©ãƒ¼
ディレクトリ削除
os.rmdir('C:\\test')
os.rmdir('.\\test')
ディレクトリãŒãªã„å ´åˆã¯ã‚¨ãƒ©ãƒ¼
絶対パスå–å¾—
path = os.path.abspath('.')
C:\test
相対パスå–å¾—
path = os.path.relpath(os.getcwd(), 'E:\\')
test\test
絶対パス判定
isabs = os.path.isabs(path)
True/False
ã€ã‚³ãƒ”ー/移動】
import shutil
shutil.copy(コピー元, コピー先)
shutil.copy('test.txt', 'target')
target\test.txt
コピー後ã®ãƒ•ã‚¡ã‚¤ãƒ«åæŒ‡å®š
shutil.copy('before.txt', 'target\\after.txt')
target\after.txt
shutil.copy('inner', 'outer')
エラー(ディレクトリã¯ç§»å‹•×)
ディレクトリ移動
shutil.move('inner', 'outer')
outerãŒå˜åœ¨ã™ã‚‹å ´åˆ
outer\inner
※outerã®ä¸ã¸ç§»å‹•
outerãŒå˜åœ¨ã—ãªã„å ´åˆ
outer
※inner→outerã¸åç§°ãŒå¤‰æ›´ã•れる(innerã®ä¸ã«ãƒ•ァイルã€ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãŒã‚ã£ã¦ã‚‚)
サブディレクトリã€ãƒ•ァイル毎強制削除
shutil.rmtree('outer')
ã€ãƒ†ã‚ストファイルèªè¾¼/書込】
path = 'E:\\MyProject\\PythonStudy\\test.txt'
èªè¾¼ãƒ¢ãƒ¼ãƒ‰ã§é–‹ã
file = open(path)
file = open(path, 'r')
書込モードã§é–‹ã
file = open(path, 'w')
追記モードã§é–‹ã
file = open(path, 'a')
for i in range (1,11):
  書込
  file.write(str(i) + '\n')
file.close()
file = open(path, 'r')
一括èªè¾¼
content = file.read()
file.close()
file = open(path, 'r')
行毎ã«é…列ã«èªè¾¼
content = file.readlines()
for l in content:
  print(l)
file.close()
ã€Pythonモジュールã¨ã—ã¦æ›¸è¾¼/èªè¾¼ã€‘
import pprint
pg = ['php', 'Java', 'Python']
file = open('mymodule.py', 'w')
file.write( 'pg={}'.format( pprint.pformat(pg) ) )
file.close()
ä¿å˜ã—ãŸmymodule.pyをモジュールã¨ã—ã¦import
import mymodule
mymodule.py内ã®å¤‰æ•°ã‚’æ“作
for p in mymodule.pg:
  p
  php
  Java
  Python
ã€å¤‰æ•°èªè¾¼/書込】
import shelve
s = shelve.open('mydata')
pg = ['php', 'Java', 'Python']
s['pg'] = pg
s.close()
s = shelve.open('mydata')
s
<class 'shelve.DbfilenameShelf'>
s['pg']
['php', 'Java', 'Python']
s.close()
#(Linuxコマンドを利用)
system "mkdir (ディレクトリå)";
system "rmdir (ディレクトリå)";
system "rm -r (ディレクトリå)";
ディレクトリコピー
#(Linuxコマンドを利用)
system "cp -r
(コピー元パス) (コピー先パス)";
â€»ã‚³ãƒ”ãƒ¼å…ƒãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã¯æ®‹ã‚‹ã€‚
ディレクトリ移動
#(Linuxコマンドを利用)
system "mv
(移動元パス) (移動先パス)";
â€»ç§»å‹•å…ƒãƒ‘ã‚¹ã¯æ¶ˆãˆã‚‹ã€‚
ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªæƒ…å ±å–å¾—
親フォルダå–å¾—
string strDirPath = Path.GetDirectoryName("C:\test.txt");
→strDirPath : C
ディレクトリå˜åœ¨ç¢ºèª
if (!Directory.Exists(path: @"D:\Folder")){
  MessageBox.Show(text: "フォルダãŒã‚りã¾ã›ã‚“。");
}
絶対パス判定
bool isRoot = Path.IsPathRooted(@"D:\a\test.txt");
isRoot:true
bool isRoot = Path.IsPathRooted(@"a\a\test.txt");
isRoot:false
パスçµåˆ
string dir = @"c:\test";
string file = @"text.txt";
string path = Path.Combine(path1: dir, path2: file);
path:c:\test\test.txt
「\ã€ãŒè‡ªå‹•çš„ã«è¿½åŠ ã•れã¦ã„ã‚‹
åˆ—æŒ™ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã«æ ¼ç´
「LINQ.Enumerable/ãƒ•ã‚¡ã‚¤ãƒ«æƒ…å ±ã€å‚ç…§
Dim myFolder As Folder
'フォルダå–å¾—
Set myFolder = myFso.GetFolder("C:\Test.txt")
フルパス
debug.print myFolder.path
フォルダå
debug.print myFolder.name
$dir = __FILE__;
→/var/www/test/~.php
カレントディレクトリ
$dir = getcwd();
→/var/www/test
path = 'E:\\MyProject\\PythonStudy\\test.py'
ディレクトリå
dir = os.path.dirname(path)
E:\MyProject\PythonStudy
ディレクトリåã€ãƒ•ァイルå
dir_base = os.path.split(path)
('E:\\MyProject\\PythonStudy', 'test.py')
dir_base[0]
E:\MyProject\PythonStudy
dir_base[1]
test.py
ディレクトリã«å«ã¾ã‚Œã‚‹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã€ãƒ•ァイルã®ä¸€è¦§
list = os.listdir(path)
['phone.py', 'test.py', 'test2']
for file in os.listdir(path):
  phone.py
  test.py
  test2
ディレクトリ判定
isdir = os.path.isdir(path)
True/False
å˜åœ¨ãƒã‚§ãƒƒã‚¯
isexist = os.path.exists(path)
True/False
ã€ã‚µãƒ–ディレクトリをå«ã‚ã¦ãƒ•ァイルを全å–得】
import shutil
for foldername, subfoders, filenames in os.walk('C:\\'):
  Loop内ã®ã‚«ãƒ¬ãƒ³ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª
  print('Current dir:' + foldername)
  
  Loop内ã®ã‚µãƒ–ディレクトリ一覧
  for subfoder in subfoders:
    print('subfolder of ' + foldername + ':' + subfoder)
  
  Loop内ã®ãƒ•ァイル一覧
  for filename in filenames:
    print('file inside ' + foldername + ':' + filename)
ãƒ•ã‚¡ã‚¤ãƒ«æƒ…å ±å–å¾—
æ‹¡å¼µåç„¡ã—ファイルåå–å¾—
string strFileName = Path.GetFileNameWithoutExtension("C:\test.txt");
→strFileName : test
ファイルåå–å¾—
string strFileName = Path.GetFileName("C:\test.txt");
→strFileName : test.txt
æ‹¡å¼µåå–å¾—
string ext = Path.GetExtension("C:\test.txt");
→ext : .txt ※test.csv.txt.log ã®å ´åˆï¼š.log
ファイルå˜åœ¨ç¢ºèª
if (!File.Exists(path: @"D:\Folder\New.txt"))
{
  MessageBox.Show(text: "ファイルãŒã‚りã¾ã›ã‚“。");
}
指定ディレクトリ直下ã®ãƒ•ァイル一覧をå–å¾—
string[] filenm = Directory.GetFiles(
 path: @"D:\Folder1",
 searchPattern: @"*",
 searchOption: SearchOption.AllDirectories);
⇒filenm[0] : D:\Folder1\New1.txt
⇒filenm[1] : D:\Folder1\New2.txt
åˆ—æŒ™ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã«æ ¼ç´
「LINQ.Enumerable/ãƒ•ã‚¡ã‚¤ãƒ«æƒ…å ±ã€å‚ç…§
Dim myFolder As Folder
Dim myFile As File
Dim fileNm As String
Dim extension As String
'ファイルå–å¾—
Set myFile = myFso.GetFile("C:\Test.txt")
フルパス
debug.print myFile.path
ファイルå
debug.print myFile.name
パスãŒå˜åœ¨ã—ãªã„å ´åˆ
myFile Is Nothing
'フォルダå–å¾—
Set myFolder = myFso.GetFolder("C:\Test.txt")
'フォルダ内ファイルを全件å–å¾—
For Each myFile In myFolder.Files
 Set myFile = myFso.GetFile("C:\Test.txt")
 
 myBase = myFso.GetBaseName("C:\Test.txt")
 → Test
 
 'ファイルå
 fileNm = myFile.Path
 → fileNm:"C:\Test.txt"
 
 'æ‹¡å¼µå
 extension = myFso.GetExtensionName(fileNm )
 → extension:"txt"
Next myFile
$dir = __FILE__;
→/var/www/test/~.php
指定ディレクトリé…下ã®ãƒ•ァイルをé…列ã§å–å¾—
$files = glob('/var/www/test/*.csv');
→$files[0] test1.csv
→$files[1] test2.csv
path = 'E:\\MyProject\\PythonStudy\\test.py'
ファイルå
base = os.path.basename(path)
test.py
ディレクトリåã€ãƒ•ァイルå
ã€Œãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªæƒ…å ±å–å¾—ã€å‚ç…§
ディレクトリã«å«ã¾ã‚Œã‚‹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã€ãƒ•ァイルã®ä¸€è¦§
ã€Œãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªæƒ…å ±å–å¾—ã€å‚ç…§
ファイル判定
isfile = os.path.isfile(path)
True/False
å˜åœ¨ãƒã‚§ãƒƒã‚¯
ã€Œãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªæƒ…å ±å–å¾—ã€å‚ç…§
ã€ã‚µãƒ–ディレクトリをå«ã‚ã¦ãƒ•ァイルを全å–得】
ã€Œãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªæƒ…å ±å–å¾—ã€å‚ç…§
set filename="test.txt"
if EXIST %filename% (
  
) else (
  
)
èªå–属性ã®å–å¾—
bool readFlg = ((fas & FileAttributes.ReadOnly) == FileAttributes.ReadOnly);
if (readFlg == true)
{
  throws new UnauthorizedAccessException(message: @"ファイルãŒèªã¿å–り専用ã§ã™ã€‚");
}
ãƒ•ã‚¡ã‚¤ãƒ«é¸æŠž

OpenFileDialogクラスã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’作æˆ
var dialog = new OpenFileDialog();
if (dialog.ShowDialog() == DialogResult.OK) {
  string filePath = dialog.FileName;
  filePath : "D:\read.txt"
  string fileNm = dialog.SafeFileName;
  fileNm : "read.txt"
}
<input id="myFile" type="file" /><br/>
<label id="myLabel">ファイルパス</label>
<script type="text/javascript">
    try {
      $(function(){
        $("#myFile").change(function(){
          var strPath = $("#myFile").val();
          $("#myLabel").text(strPath);
        });
      });
    }catch(e){
      window.alert(e.message);
    }
</script>
ãƒ•ã‚©ãƒ«ãƒ€é¸æŠž
ãƒ•ã‚©ãƒ«ãƒ€é¸æŠžãƒ€ã‚¤ã‚¢ãƒã‚°åˆæœŸè¡¨ç¤ºãƒ‘ス
ofd.SelectedPath = ~;
ãƒ•ã‚©ãƒ«ãƒ€é¸æŠžãƒ€ã‚¤ã‚¢ãƒã‚°è¡¨ç¤º
if (ofd.ShowDialog() == DialogResult.OK)
{
ã€€ã€€ãƒ•ã‚©ãƒ«ãƒ€é¸æŠžçµæžœå–å¾—
  string path = ofd.SelectedPath;
}
ç½®æ›
string main = @"d:\a\test.txt";
string backup = Path.ChangeExtension(path: main, extension: ".bak");
string temp = Path.ChangeExtension(path: main, extension: ".$$$");
File.WriteAllLines(path: temp, contents: new string[] { "aaa" });
if (!File.Exists(path: main))
 File.Move(sourceFileName: temp, destFileName: main);
else
 File.Replace(
  sourceFileName: temp,
  destinationFileName: main,
  destinationBackupFileName: backup);
test.$$$→test.txtã¸ç½®æ›
test.txt→test.bakã¸ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—作æˆ(test.txtãŒã‚ã‚‹å‰æ)
ファイルサイズ
FileInfo info = new FileInfo(@"C:\Test.txt");
long filesize = info.Length;
if (filesize / 1024 / 1024 > 10)
{
  10MBより大ãã„å ´åˆã€ã“ã“を通る
}
byteサイズ
size = os.path.getsize(path)
999
ZIPファイルæ“作
file = zip.ZipFile('sample.zip')
ZIPファイル内ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªåã€ãƒ•ァイルåã‚’å–å¾—
file.namelist()
['sample/~.txt', 'sample/~.txt', 'sample/sample_inner/', 'sample/sample_inner/~.txt']
ZIPファイル新è¦ä½œæˆ
file = zip.ZipFile('sample.zip', 'w')
ZIPファイルã«ãƒ•ァイルを追åŠ
file.write('add1.txt', compress_type=zip.ZIP_DEFLATED)
file.write('add2.txt', compress_type=zip.ZIP_DEFLATED)
file.close()
file.namelist()
['add1.txt', 'add2.txt']
è§£å‡
file.extractall()
ZIPãƒ•ã‚¡ã‚¤ãƒ«å†…ã®æŒ‡å®šãƒ•ァイルã®ã¿ã€ã‚«ãƒ¬ãƒ³ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«è§£å‡
file.extract('add1.txt')
ZIPãƒ•ã‚¡ã‚¤ãƒ«å†…ã®æŒ‡å®šãƒ•ァイルã®ã¿ã€æŒ‡å®šãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«è§£å‡
file.extract('add2.txt', 'extract')