Java 如何新增檔案和資料夾
例如我們要建立一個檔案路徑為 logs/test.log,使用 File 類別如下 12String filePath = "logs/test.log";File file = new File(filePath); 此時如果直接 createNewFile() 123456789if(!file.exists()){ try { file.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }} 會因為 parent 的資料夾不存在而失敗,而這時直接使用 mkdirs() 12345678910if(!file.exists()){ file.mkdirs(); try { file.createNewFile(); } catch (I ...
Linux chmod 修改資料夾和子資料夾權限
有時候會需要針對一個目錄下的所有資料夾和子資料夾做 chmod,例如從 Windows 傳過來的檔案或 zip 解開的檔案,權限會變成 777,這時候可以使用搭配 find 指令來找出特定類型的資料處理: 將目前資料夾下的所有資料夾和子資料夾改為 755 1find . -type d -exec chmod 755 {} \; 或是要將目前資料夾下的所有檔案和子資料夾中的檔案改為 644 1find . -type f -exec chmod 644 {} \;
Java 讀取設定檔
在 Java 中可以使用 Properties 的類別來讀取設定檔,例如有一個設定檔 config.properties 其中包含以下設定 123host = jdbc:mysql://localhost/dbusername = userpassword = 123456 而在 Java 程式中可以用以下方式讀取 12345678910111213141516171819202122232425262728Properties properties = new Properties();String configFile = "config.properties";try { properties.load(new FileInputStream(configFile));} catch (FileNotFoundException ex) { ex.printStackTrace(); return;} catch (IOException ex) { ex.printStackTrac ...
C# 以屬性的方式存取陣列元素
本文於 2012/02/09 更新:此需求應為陣列元素唯讀,又能使用索引的方式讀取,故更新此文章。 在網路上有人提出這個問題,想要以屬性 (Property) 的方式存取陣列元素,而我回應了一個解決方案,主要使用了泛型 (Generics) 和索引子 (Indexer) 的方式: 利用泛型先做一個通用的屬性陣列類別 1234567891011121314151617class PropertyArray<T>{ private T[] array; public PropertyArray(T[] array) { this.array = array; } public T this[int index] { get { return array[index]; } }} 在需要此功能的類別中加入上面的類別為屬性成員 12345678910111213 ...
PHP 執行外部程式
說明 PHP 如何執行外部程式,以及可能造成無法成功執行的原因,包含 SELinux、php.ini 設定、Sudoer、環境變數路徑和參數問題。在 PHP 中可以使用 shell_exec()、exec()、system() 等函式執行外部程式,但是要注意有些設定可能會限制而無法執行,這裡以 Linux 系統為主要討論,要注意的地方如下: SELinux這是加強系統安全的模組,但沒有特別去設定的話時常會無法讓程式正常運作,而且在 PHP 端沒有任何訊息,例如執行 shell_exec("ls"),沒有任何訊息。不過如果被 SELinux 封鎖的話,在 /var/log/messages 裡面會有類似以下的訊息: 1Aug 10 11:24:48 pc111168 setroubleshoot: SELinux is preventing the sudo from using potentially mislabeled files /bin/ls (ls_exec_t). For complete SELinux messages. run sealert -l ...
在痞客邦使用 SyntaxHighlighter 為程式碼上色
2015/06/02 更新寫了一個 Pixnet 外掛,直接安裝就可以使用了https://appmarket.pixnet.tw/#!/addon/787 由於編輯器和系統換行功能會被自動加上一些不必要的原始碼,所以要將設定修改如下: [部落格後台] => [部落格管理] => [基本/進階設定] => [預設文章編輯模式] => [純文字模式] [部落格後台] => [部落格管理] => [側邊欄位設定] => [頁尾描述] 下加入以下程式碼 (依據所需的語言加入,參考下方列表) 1234567891011121314<link type="text/css" rel="stylesheet" href="http://alexgorbatchev.com/pub/sh/current/styles/shCore.css"/><script type="tex ...
PHP 教學 - 運算子 (Operators) - 下
介紹 PHP 中運算子的用法,包含執行運算子 (Execution Operator)、增值 / 減值運算子 (Incrementing / Decrementing Operator)、邏輯運算子 (Logical Operator)、字串運算子 (String Operator)、陣列運算子 (Array Operator) 和型別運算子 (Type Operator)。 執行運算子執行運算子 (Execution Operator) 使用兩個倒斜點 (```) 包夾要執行的指令,注意它並不是單引號,他會將執行結果的輸出回傳,可以存到變數。 123456789// 在 Linux 系統列出檔案$output = `ls al`;// 在 Windows 系統列出檔案$output = `DIR /A`;echo "<pre>{$output}</pre>";// 利用變數作為參數的用法$param = "/A"; // 傳入的參數$output = `D ...
PHP 教學 - 運算子 (Operators) - 上
介紹 PHP 中運算子的用法,包含種類、優先順序、算術運算子 (Arithmetic Operator)、指派運算子 (Assignment Operator)、位元運算子 (Bitwise Operator)、比較運算子 (Comparison Operator)、三元運算子 (Ternary Operator)和錯誤控制運算子 (Error Control Operator)。 簡介種類透過提供一些數值給運算子 (Operator,或運算符) 進行運算,進而得到一個運算結果,可以想成類似函式的回傳,另外被運算的數值稱為運算元 (Operand)。 依據運算元的個數,運算子可以分為三種: 一元運算子,只有一個運算元,例如:!, ++ 等。 二元運算子,包含兩個運算元,大部分都屬於這類。 三元運算子,包含三個運算元,只有 ? : 運算子屬於此類。 而依據性質,可以分為: 算術運算子 (Arithmetic Operator) 指派運算子 (Assignment Operator) 位元運算子 (Bitwise Operator) 比較運算子 (Comparison Operato ...
Maximum execution time of 30 seconds exceeded
問題PHP程式執行一段時間,最後出現以下錯誤訊息: 1Fatal error: Maximum execution time of 30 seconds exceeded in ....php on line ... 原因這表示 PHP 程式執行的時間已經超過 PHP 設定 (max_execution_time) 的最大限制。 解決方案方法一:修改 php.ini 設定找到 1max_execution_time 30 預設為 30 秒,改為較大的值,例如: 1max_execution_time 300 儲存後重新啟動 Apache 即可。 方法二:使用 ini_set() 函式在程式開頭加上 ini_set() 函式去更改本次執行的 max_execution_time,例如: 1ini_set("max_execution_time", "300");
PHP 教學 - 常數 (Constants)
介紹PHP中常術的用法,包含語法、命名規則和魔術常數 (Magic constant)。 語法變數的值會改變而稱為變數,那相對於變數的常數,則是恆常不變的值而稱作常數 (Constant)。常數在宣告之後,就無法再改變它的值,除了魔術常數 (magic constant) 有可能會改變,因為他並非是真正的常數。常數是有大小寫之分,而常數的命名規則和變數一樣,以正規表示法表示如下: 1[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* 常數的使用和特性如下: 使用 define() 函式或 const 關鍵字宣告常數 (PHP 5.3.0 之後),但 const 關鍵字無法用在函式中,且和 static 類似,必須直接指定值,不可運算。 常數只能是數值的值,包括布林、整數、浮點數和字串,雖然也可以設為資源,但有可能會出現問題。 使用常數未定義時,會視為字串使用。可以使用 defined() 函式來判斷是否已定義。 和變數不一樣,常數不需要使用錢號 ($) 做開頭。除直接使用外,也可以用 constant() 函式取得常數值。 常數沒有範圍 (或當作是全域) ...






