필터 지우기
필터 지우기

Separate path string into drive and folders

조회 수: 290 (최근 30일)
Philipp
Philipp 2013년 7월 24일
댓글: Stephen23 2024년 5월 21일
Hi,
using fileparts brings the path, the name and the exentension of a fullfile (e.g., C:\user\files\myFile.txt). Is there a function that separates the path into drive and folders, so that drive = 'C:' folder1 = 'user' folder2 = 'files' ?
Thx, Philipp

채택된 답변

Azzi Abdelmalek
Azzi Abdelmalek 2013년 7월 24일
s='C:\user\files\myFile.txt'
out=regexp(s,'\','split')
  댓글 수: 6
Riad
Riad 2024년 5월 21일
Hi @Stephen23 there more easier way by using strsplit but I want to avoid using either "/" or "\" in the script (on the server, I've a Linux OS):
strsplit('Swc_MTR/Run_MTR_1ms_sys/COMP_/In1','/')
ans =
1×4 cell array
{'Swc_MTR'} {'Run_MTR_1ms_sys'} {'COMP_'} {'In1'}
Stephen23
Stephen23 2024년 5월 21일
"filesep is equivalent to "\" and it works fine for a kind of paths"
No, what FILESEP is depends on the OS that MATLAB is currently running on.
"I want to avoid strsplit function by using a function that can work for both Windows/Linux OS !"
And now you write that you want to use STRSPLIT: your requirements keep on changing.
"I want to avoid using either "/" or "\" in the script (on the server, I've a Linux OS)"
I thought the requirement is to split on either of the path separators, which is also easy with STRSPLIT:
strsplit('Swc_MTR/Run_MTR_1ms_sys/COMP_/In1',{'/','\'})
ans = 1x4 cell array
{'Swc_MTR'} {'Run_MTR_1ms_sys'} {'COMP_'} {'In1'}

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Christian Schwermer
Christian Schwermer 2018년 9월 9일
The shortest solution is to split the string using filesep as delimeter. filesep returns the platform-specific file separator "\" or "/".
pathparts = strsplit(s,filesep);

Dominique
Dominique 2023년 7월 19일
path = uigetdir()
foldername = strsplit(path,"\");
foldername = foldername(end);

카테고리

Help CenterFile Exchange에서 File Name Construction에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by