【215】◀▶ IDL 文件操作說明 (黑底)


參考:I/O - General File Access Routines —— 基本文件操作函數


01   CD 修改當前的工作空間路徑。
02   FILE_SEARCH 對文件名進行特定的查找。返回字符串數組。
03   FILE_COPY 復制文件或者文件夾。
04   FILE_DELETE 刪除文件或者文件夾。
05   FILE_MOVE 移動文件或文件夾。 
06   FILE_MKDIR 新建文件夾。
07   FILE_TEST 判斷文件是否存在,返回布爾值。 
08   FILE_BASENAME 返回文件路徑中的文件/文件夾名稱。
09   FILE_DIRNAME  返回文件路徑所在的文件夾路徑。
10   FILE_EXPAND_PATH 返回給定文件/文件夾的完整路徑。 
11   FILE_INFO  返回給定文件/文件夾的屬性信息。
12   FILE_LINES  返回指定文件的行數。 
13   ROUTINE_FILEPATH 返回當前編譯過程或函數的完整路徑。

序號 名稱  

功能說明

   語法 & 舉例
01 CD  

修改當前的工作空間路徑。
CD [, Directory] [, CURRENT=variable]

 
◈ 指定一個完整的路徑:
  CD, 'D:\home\data\' 
  CD, 'D:/home/data/' 

◈ 改變為當前路徑的子路徑:
  CD, 'january'  
  CD, './january'

◈ 回到上一級路徑:
  CD, '..'         
  CD, '../february' 
 02 FILE_SEARCH  

====<<<< Description >>>>====

對文件名進行特定的查找。返回字符串數組。
相當於 shell 里面的 ls,顯示當前文件夾內的所有文件夾和文件。
----------------------------------------------------------------------------------

====<<<< Syntax >>>>====

Result = FILE_SEARCH(Path_Specification)

or for recursive searching,

Result = FILE_SEARCH(Dir_Specification, Recur_Pattern)

Keywords: [, COUNT=variable ] [, /EXPAND_ENVIRONMENT ] [, /EXPAND_TILDE ] [, /FOLD_CASE ] [, /FULLY_QUALIFY_PATH ] [, /ISSUE_ACCESS_ERROR ] [, /MARK_DIRECTORY ] [, /MATCH_ALL_INITIAL_DOT | /MATCH_INITIAL_DOT ] [, /NOSORT ] [, /QUOTE ] [, /TEST_DIRECTORY ] [, /TEST_EXECUTABLE ] [, /TEST_READ ] [, /TEST_REGULAR ] [, /TEST_WRITE ] [, /TEST_ZERO_LENGTH ] [, /WINDOWS_SHORT_NAMES ]

----------------------------------------------------------------------------------

====<<<< Return Value >>>>====

返回值為匹配的字符串數組。
----------------------------------------------------------------------------------

====<<<< Parameters >>>>====

 

◈  Path_Specification:路徑字符串,可以包含通配符,如果為空則會默認為"*";如果指定絕對路徑,結果也是絕對路徑,如果是相對路徑,結果只有文件名。
◈  Dir_Specification:文件夾路徑字符串,執行遞歸查詢。
◈  Recur_Pattern:遞歸查詢內容,允許通配符,空相當於"*"。

◈  TEST_REGULAR:僅包括文件。

◈  TEST_DIRECTORY:僅包括文件夾。
◈  COUNT:文件總數。
◈  FULLY_QUALIFY_PATH:添加完整路徑
◈  MARK_DIRECTORY:會在文件夾路徑后面添加"/"。

◈  TEST_ZERO_LENGTH:僅返回0長度的文件,文件夾會被返回。
----------------------------------------------------------------------------------

====<<<< References >>>>====

參考:IDL中File_Search函數用法詳解

 
◈ 獲取當前路徑下的所有文件/文件夾:
  FILE_SEARCH()  # 空相當於"*",相對路徑
  FILE_SEARCH('*')  # 查找全部,相對路徑
  FILE_SEARCH('F:\TestPath\*')  # 絕對路徑

◈ 獲取當前路徑下的所有文件:
  FILE_SEARCH('*.*')        
  FILE_SEARCH(/TEST_REGULAR)

◈ 獲取當前路徑下的所有文件夾:
  FILE_SEARCH(/TEST_DIRECTORY)

遞歸查詢如下,如果不存在二級文件夾則相當於普通查詢

MyRootDir='D:\CODES\IDL\GUI_test\data'
files = FILE_SEARCH(MyRootDir, 'A2017*.nc', count=num)

 

 03 FILE_COPY  

復制文件或者文件夾。
FILE_COPY, SourcePath, DestPath
◈ SourcePath:想要復制的文件夾或文件的路徑

◈ DestPath:目的地文件夾
◈ OVERWRITE:覆蓋文件

 
◈ 當前路徑內部建立副本:
  FILE_COPY, '1.nc', '2.nc'

◈ 復制到 sub 文件夾中:
  FILE_COPY, '1.nc', 'sub'

◈ 復制多個文件/文件夾:
  FILE_COPY, ['*.pro', 'makefile', 'mydata.dat'], 'BACKUP' 
 04 FILE_DELETE  

刪除文件或者文件夾。
FILE_DELETE, File1[,... Filen] [, /ALLOW_NONEXISTENT] [, /NOEXPAND_PATH] [, /QUIET] [, /RECURSIVE] [, /RECYCLE] [, /VERBOSE]
◈ RECURSIVE:默認情況下只能刪除空文件夾,設置此參數能夠刪除非空文件夾

◈ RECYCLE:默認情況下永久刪除,設置此參數可以將刪除的文件放在回收站里面

 
◈ 刪除當前路徑下的 moose 文件夾:
  FILE_DELETE, 'moose'

◈ 刪除多個文件/文件夾
  FILE_DELETE, '2.jpg', '3.jpg' 
 05 FILE_MOVE   移動文件或文件夾。
FILE_MOVE, SourcePath, DestPath [, /ALLOW_SAME] [, /NOEXPAND_PATH] [, /OVERWRITE] [, /REQUIRE_DIRECTORY] [, /VERBOSE]
◈ OVERWRITE:覆蓋文件
 
◈ 文件重命名:
  FILE_MOVE, 'backup.dat', 'primary.dat'

◈ 移動多個文件/文件夾到另一路徑下:
  FILE_MOVE, ['*.pro', 'makefile', 'mydata.dat'], 'BACKUP'
 06 FILE_MKDIR  

新建文件夾。
FILE_MKDIR, File1 [,... FileN] [, /NOEXPAND_PATH]

 
  FILE_MKDIR, 'moose'       
  FILE_MKDIR, 'moose', 'abc' 
 07 FILE_TEST  

判斷文件是否存在,返回布爾值。(1-true、0-false)
FILE_TEST(File [, /DIRECTORY | ,  /EXECUTABLE | , /READ | , /REGULAR | ,  /WRITE | , /ZERO_LENGTH] [, GET_MODE=variable] [, /NOEXPAND_PATH])
◈ DIRECTORY:存在且是文件夾,返回值為 1 (true)

 
  FILE_TEST('tsm')              
  FILE_TEST('1.jpg', /DIRECTORY) 
 08 FILE_BASENAME   返回文件路徑中的文件/文件夾名稱。
FILE_BASENAME(Path [, RemoveSuffix])
RemoveSuffix:刪除的后綴部分,可以用來刪除文件的擴展名
 
◈ 返回值:dist.pro
  FILE_BASENAME('C:\idl\lib\dist.pro')

◈ 返回值:dist
  FILE_BASENAME('C:\idl\lib\dist.pro', '.pro') 
 09 FILE_DIRNAME   返回文件路徑所在的文件夾路徑。
FILE_DIRNAME(Path [, /MARK_DIRECTORY])
◈ MARK_DIRECTORY:是否在末尾添加“\”等分隔符
 
◈ 返回值:D:\Mc\IDL
  FILE_DIRNAME('D:\Mc\IDL\1.jpg')

◈ 返回值:D:\Mc\IDL\
  FILE_DIRNAME('D:\Mc\IDL\1.jpg', /MARK_DIRECTORY) 
 10 FILE_EXPAND_PATH   返回給定文件/文件夾的完整路徑。
FILE_EXPAND_PATH(Path)
 

 

◈ 返回值:D:\Mc\IDL\1.jpg
  FILE_EXPAND_PATH('1.jpg')
 11 FILE_INFO  

返回給定文件/文件夾的屬性信息。(路徑、大小等)
FILE_INFO(Path [, /NOEXPAND_PATH] )
◈ NOEXPAND_PATH:不顯示路徑,只顯示文件名稱

   
 12 FILE_LINES  

返回指定文件的行數。(文本文件)
FILE_LINES(Path [, /COMPRESS] [, /NOEXPAND_PATH])

   
 13 ROUTINE_FILEPATH  

返回當前編譯過程或函數的完整路徑。
ROUTINE_FILEPATH([Routine] [, /EITHER] [, /IS_FUNCTION])

   
14 PATH_SEP  

====<<<< Description >>>>====

返回當前操作系統分隔符。
----------------------------------------------------------------------------------

====<<<< Syntax >>>>====

Result = PATH_SEP( [, /PARENT_DIRECTORY] [, /SEARCH_PATH] )

----------------------------------------------------------------------------------

====<<<< Parameters >>>>====

◈  PARENT_DIRECTORY:設置的話返回當前系統父路徑符號。

 
IDL> path_sep()
\
IDL> path_sep(/PARENT_DIRECTORY)
..
IDL> path_sep(/SEARCH_PATH)
;
15 CD  

====<<<< Description >>>>====

用來設置或者改變當前的工作空間。
----------------------------------------------------------------------------------

====<<<< Syntax >>>>====

CD [, Directory] [, CURRENT=variable]

----------------------------------------------------------------------------------

====<<<< Parameters >>>>====

◈  Directory:指定為新工作空間的字符串。
  如果路徑為空字符串,則變為默認路徑;
  如果參數未設置,則工作路徑不變。
◈  CURRENT:將修改前的工作路徑存儲在此變量中。

 
IDL> ;指定完整路徑
IDL> CD, 'D:\CODES\IDL'
IDL> ;改變為當前目錄的子文件夾
IDL> CD, 'GUI_test'
IDL> CD, 'D:\CODES\IDL'
IDL> CD, './GUI_test'
IDL> ;回到父目錄中
IDL> CD, '..'
IDL> ;返回父目錄下的另一個文件夾
IDL> CD, '../folder2'
IDL> ;模仿 UNIX 系統 pwd 命令
IDL> CD, CURRENT=c & PRINT, c
D:\CODES\IDL
  CLIPBOARD  

獲取和設置剪切板內容。

   
  GET_SCREEN_SIZE  

獲取主顯示器的長寬像素值。

   
  IDLsysMonitorInfo  

首先需要實例化,如示例所示。

 
IDL> obj = obj_new('IDLsysMonitorInfo')
IDL> print, obj.GetNumberOfMonitors()
       2
IDL> print, obj.GETMONITORNAMES()

IDL> print, obj.GETRESOLUTIONS()
     0.015119048     0.015119048
     0.015119048     0.015119048
IDL> print, obj.ISEXTENDEDDESKTOP()
       1
IDL> print, obj.ISEXTENDEDDESKTOP()
       1
   

-------------------------------------------------------------------------------

   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM