目次
5.4 Windows システムでのファイル区切り記号とドットの折り畳み
5.1 Windows ファイル名のコンポーネントを取得する
5.2 Linux Dotfile ファイル名のコンポーネントを取得する
序文
最近、私は EpicFlow の実装を学んでいます。元のプロジェクトのgit リンクを示します。元の作成者はプログラミングに 64 ビット Linux を使用しており、コードには matlab ファイルも含まれているため、単に関連する matlab 関数をコードの視点。
一、フルファイル
1.機能
個々の部分から完全なファイル名を作成します。
2. 文法
f = フルファイル(パート1、パート2、...、パートN)
3. 入力と出力
3.1 入力
part1,...,partN
— フォルダーまたはファイル名の
文字ベクトル | string 配列 | 文字ベクトルの cell 配列例:
fullfile('c:\','user','docs')
例:
fullfile('\\','Server01','user','docs')
例:
fullfile('home','users','docs',{'myfile.m', 'myfile2.m'})
データ型:
char
|cell
|string
3.2 出力
f
— 完全なファイル名
char 配列 | string 配列 | 文字ベクトルの cell 配列完全なファイル名。文字配列、string 配列、または文字ベクトルの cell 配列として返されます。入力引数のいずれかが文字列の配列
f
である場合は、文字列の配列。それ以外の場合、入力引数が文字ベクトルの cell 配列である場合、それはf
文字ベクトルの cell 配列になります。それ以外の場合は、f
文字配列。データ型:
char
|cell
|string
4. 説明
この関数は、指定されたフォルダーとファイル名から完全なファイル セットを構築します。
fullfile
必要に応じて OS 依存のファイル区切り文字を挿入しますが、末尾のファイル区切り文字は追加しないでください。Windows プラットフォームでは、ファイル区切り文字はバックスラッシュ ( \
) です。他のプラットフォームでは、ファイル区切り文字が異なる文字になる場合があります。
Windows では、fullfile
すべてのスラッシュ ( /
) をバックスラッシュ ( \
) に置き換えます。UNIX プラットフォームでは、バックスラッシュ ( \
) 文字はファイル名の有効な文字であり、置き換えられません。
fullfile
先頭または末尾の区切り文字は削除されません。fullfile
完全なファイル仕様の先頭に出現する場合を除き、内部的に繰り返されるファイル区切り文字を折りたたんでください。fullfile
ドット表記で示される相対ディレクトリも、完全なファイル仕様の最後に表示されない限り折りたたまれます。二重ドット表記で示される相対ディレクトリは折りたたまれません。
5. 例
5.1 Windows での完全なファイル パスの作成
>> f = fullfile('myfolder','mysubfolder','myfile.m') 結果は次のようになります: f = 'myfolder\mysubfolder\myfile.m'
5.2 UNIX での完全なファイル パスの作成
>> f = fullfile('myfolder','mysubfolder','myfile.m') 結果は次のようになります: f = 'myfolder/mysubfolder/myfile.m'
5.3 Windows での複数のファイルへのパスの作成
複数のファイル名は中括弧で囲み、セミコロンで区切ります。
>> f = fullfile('c:\','myfiles','matlab',{'myfile1.m';'myfile2.m'}) 結果: f = 2×1 cell 配列 'c:\myfiles\ matlab\myfile1.m' 'c:\myfiles\matlab\myfile2.m'
5.4 Windows システムでのファイル区切り記号とドットの折り畳み
ファイル区切り文字とドット表記を使用してフォルダー パスを作成します。
fullfile
先頭または末尾のファイル区切り文字を折りたたまないでください。filesep
ファイル区切り文字は自動的に補完されます。
>> f = fullfile('c:\','myfiles','matlab',filesep) 結果は次のようになります: f = c:\myfiles\matlab\
fullfile
完全なファイル仕様の先頭に出現する場合を除き、繰り返されるファイル区切り文字は折りたたんでください。
>> f = fullfile('c:\folder1', '\\\folder2\\') の結果は次のようになります: f = c:\folder1\folder2\
fullfile
完全なファイル仕様の最後に表示されない限り、ドット表記で示された相対ディレクトリを折りたたみます。二重ドット表記で示される相対ディレクトリは折りたたまれません。
>> f = fullfile('c:\folder1', '.\folder2', '..\folder3\.') 結果は次のように なります: f = c:\folder1\folder2\..\folder3\.e
2、ファイルパーツ
1.機能
ファイル名の構成要素を取得します。
2. 文法
[ファイルパス、名前、拡張子] = fileparts(ファイル名)
3. 入力と出力
3.1 入力
filename
— ファイル名
string 配列 | 文字ベクトル | 文字ベクトルの cell 配列ファイル名。string 配列、文字ベクトル、または文字ベクトルの cell 配列として指定します。
filename
パスとファイル拡張子を含めることができます。Windows システムでは、 (同じファイル名内であっても) パス区切り文字としてスラッシュ (
/
) またはバックスラッシュ ( ) を使用できます。\
UNIX および Mac システムでは、/
区切り文字としてのみ使用します。フォルダー名のみを指定する場合は、
filename
末尾に区切り文字を追加します。データ型:
char
|string
|cell
3.2 出力
filepath
— ファイル パス
string 配列 | 文字ベクトル | 文字ベクトルの cell 配列ファイル パス。string 配列、文字ベクトル、または文字ベクトルの cell 配列として返されます。
filepath
入力引数とfilename
同じデータ型と形式を持ちます。解析するファイルの名前にパスが指定されていfilepath
ない空 ('') になります。データ型:
char
|string
|cell
name
— ファイル名
string 配列 | 文字ベクトル | 文字ベクトルの cell 配列ファイル名。string 配列、文字ベクトル、または文字ベクトルの cell 配列として返されます。
name
入力引数とfilename
同じデータ型と形式を持ちます。拡張機能は含まれていません。
fileparts
右端の区切り文字に続くすべての文字をファイル名と拡張子として解釈します。データ型:
char
|string
|cell
ext
— ファイル拡張子 string
配列 | 文字ベクトル | 文字ベクトルの cell 配列ファイル拡張子。string 配列、文字ベクトル、または文字ベクトルの cell 配列として返されます。
ext
入力引数とfilename
同じデータ型と形式を持ちます。
ext
ピリオド (.
) から始めます。解析するファイルの名前に拡張子が指定されていないext
場合は、空 ('') になります。データ型:
char
|string
|cell
4. 説明
[filepath,name,ext] = fileparts(filename)
指定されたファイルのパス名、ファイル名、拡張子を返します。
fileparts
指定された だけを解析します filename
。ファイルの存在は確認されていません。
5. 例
5.1 Windows ファイル名のコンポーネントを取得する
myfile.txt
パス、名前、拡張子を取得します 。>> ファイル = "H:\user4\matlab\myfile.txt"; >> [ファイルパス,名前,拡張子] = ファイルパーツ(ファイル)ファイルパス = "H:\user4\matlab"名前 = "マイファイル"ext = ".txt"
5.2 Linux Dotfile ファイル名のコンポーネントを取得する
.cshrc
Linux® システムのユーザーのファイル名のコンポーネントを取得します 。
fileparts
ファイル名全体はピリオドで始まるため、拡張子として解釈されます。>> [ファイルパス,名前,拡張子] = fileparts("/home/jsmith/.cshrc")ファイルパス = "/home/jsmith"名前 = ""ext = ".cshrc"
5.3 文字列の配列からファイル名の一部を取得する
2 行 2 列の文字列配列内の各要素からファイルのパス、名前、拡張子を取得します。
>> files1_4 = ["H:/user1/matlab/file1.txt",... "H:/user2/matlab/file2.txt";"H:/user3/matlab/file3.txt",... "H:/user4/matlab/file4.txt"]; >> [パス,名前,拡張子] = fileparts(files1_4)path = 2x2 文字列 "H:/user1/matlab" "H:/user2/matlab" "H:/user3/matlab" "H:/user4/matlab"名前 = 2x2 文字列 "ファイル 1" "ファイル 2" "ファイル 3" "ファイル 4"ext = 2x2 文字列 ".txt" ".txt" ".txt" ".txt"
3. ファイル名
1.機能
現在実行中のコードのファイル名を取得します。
2. 文法
mfilename
p = mfilename('フルパス')
c = mfilename('class')
3. 説明
mfilename
関数呼び出しが発生したファイルの名前を含む文字ベクトルを返します。ファイルから呼び出された場合は、ファイルの名前を返します。このようにして、スクリプトまたは関数はその名前を決定できます。
p = mfilename('fullpath')
ファイル拡張子を除いた、呼び出しが行われたファイルの完全なパスと名前を返します。
c = mfilename('class')
先頭のシンボルを除いて、メソッドのクラスを返す メソッド @
。メソッド以外から呼び出された場合は、空の文字ベクトルが生成されます。
4、ゲンパス
1.機能
パス名を生成します。
2. 文法
p = genpath
p = genpath(folerName)
3. 入力
folderName
— フォルダー名の
文字ベクトル | string スカラーフォルダー名。文字ベクトルまたは string スカラーとして指定します。
例:
'c:/matlab/myfiles'
データ型:
char
|string
4. 説明
p = genpath
空のサブフォルダーを含む、その下のすべてのフォルダーとサブフォルダーの パス名を含む文字ベクトルを返します 。matlabroot
/toolbox
p = genpath(folderName)
folderName
その内部および その下に含まれるfolderName
サブフォルダー のパス名を含む文字ベクトルを返します 。private
パス名には、 という名前のフォルダー、 @
という文字で始まるフォルダー (クラス フォルダー)、 という +
文字で始まるフォルダー (パッケージ フォルダー)、 resources
という名前のフォルダー、またはこれらすべてのフォルダー内のサブフォルダーは含まれません 。
5. 例
検索パスにフォルダーとサブフォルダーを追加する
と一緒に使用し
genpath
、addpath
フォルダーとそのサブフォルダーを検索パスに追加します。
myfolder
サブフォルダーを含む フォルダーを作成しますmysubfolder
。>> mkdir マイフォルダー; >> cd myfolder; >> mkdir myサブフォルダー; >>CD..myfolder とその下のすべてのフォルダーを含むパスを生成します。
>> p = genpath('myfolder')
結果は次のようになります:
p ='myfolder:myfolder/mysubfolder:'
フォルダーとそのサブフォルダーを検索パスに追加します。
>> パスを追加(p)