プログラム言語 ファイル処ç†

ファイル・ディレクトリæ“作

using System.IO;

ディレクトリ作æˆ
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");

Imports System.IO

‘ディレクトリ作æˆ
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

Dim cFso As New FileSystemObject

'ファイルコピー(上書ãç¦æ­¢)
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( (パス) & (変更å‰ãƒ•ァイルå), (パス) & (変更後ファイルå)
※(変更å‰ãƒ•ァイルå)ã¯æ¶ˆãˆã‚‹ã€‚

ファイルOPEN
$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"
}

import os

カレントディレクトリ
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
(移動元パス) (移動先パス)";
â€»ç§»å‹•å…ƒãƒ‘ã‚¹ã¯æ¶ˆãˆã‚‹ã€‚

ディレクトリ情報å–å¾—

using System.IO;

親フォルダå–å¾—
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 myFso As FileSystemObject
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

import os

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)

ファイル情報å–å¾—

using System.IO;

æ‹¡å¼µå­ç„¡ã—ファイルåå–å¾—
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 myFso As FileSystemObject

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

import os

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 (
  
)

読å–属性ã®å–å¾—

FileAttributes fas = File.GetAttributes("C:\test.txt");
bool readFlg = ((fas & FileAttributes.ReadOnly) == FileAttributes.ReadOnly);

if (readFlg == true)
{
  throws new UnauthorizedAccessException(message: @"ファイルãŒèª­ã¿å–り専用ã§ã™ã€‚");
}

ãƒ•ã‚¡ã‚¤ãƒ«é¸æŠž

openfiledialog

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>

ãƒ•ã‚©ãƒ«ãƒ€é¸æŠž

var ofd = new FolderBrowserDialog();

ãƒ•ã‚©ãƒ«ãƒ€é¸æŠžãƒ€ã‚¤ã‚¢ãƒ­ã‚°åˆæœŸè¡¨ç¤ºãƒ‘ス
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より大ãã„å ´åˆã€ã“ã“を通る
}

import os

byteサイズ
size = os.path.getsize(path)
999

ZIPファイルæ“作

import zipfile as 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')

Follow me!